Content deleted Content added
mNo edit summary |
GoingBatty (talk | contribs) →top: fixed reference |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 18:
The '''Berkeley r-commands''' are a [[Software suite|suite]] of [[computer program]]s designed to enable users of one [[Unix]] system to [[log in]] or issue [[Command (computing)|commands]] to another [[Unix]] computer via [[TCP/IP]] [[computer network]].<ref>{{cite book |title=Unix System Management: Primer Plus |last=Horwitz |first=Jeff |chapter=Using the Berkeley r-commands Without a Password |chapter-url=https://books.google.com/books?id=-sue_SyjuCMC&pg=PA339 |page=339 |year=2003 |orig-year=2002 |publisher=Sams Publishing |via=Google Books |isbn=978-0-672-32372-0 |access-date=2018-03-04}}</ref> The r-commands were developed in 1982 by the [[Computer Systems Research Group]] at the [[University of California, Berkeley]], based on an early implementation of [[TCP/IP]] (the [[protocol stack]] of the [[Internet]]).<ref name="McKusick">{{cite book |title=Open Sources: Voices from the Open Source Revolution |last=McKusick |first=Marshall Kirk |authorlink=Marshall Kirk McKusick |year=1999 |isbn=978-1-56592-582-3 |chapter=Twenty Years of Berkeley Unix: From AT&T-Owned to Freely Redistributable |chapter-url=http://www.oreilly.com/openbook/opensources/book/kirkmck.html |publisher=O'Reilly & Associates |at=[https://archive.org/details/isbn_9781565925823/page/ Section: "4.2BSD"] |access-date=2018-03-03 |title-link=Open Sources: Voices from the Open Source Revolution }}</ref>
The CSRG incorporated the r-commands into their [[Unix]] [[operating system]], the [[Berkeley Software Distribution]] (BSD). The r-commands premiered in BSD v4.1.<ref name="McKusick"/> Among the programs in the suite are: {{code|rcp}} (remote [[File copying|copy]]), {{code|rexec}} (remote [[Execution (computing)|execution]]), {{code|rlogin}} (remote [[login]]), {{code|rsh}} (remote [[Shell (computing)|shell]]), {{code|rstat}}, {{code|ruptime}}, and {{code|rwho}} (remote
The r-commands were a significant innovation, and became ''de facto'' standards for Unix operating systems.<ref>Casad (2008), p. [https://books.google.com/books?id=q81cs5140_YC&pg=PT346 346]</ref><ref>{{cite book |title=Red Hat Fedora Linux 2 Bible |last=Negus |first=Christopher |publisher=Wiley |isbn=0-7645-5745-9 |oclc=441918216 |chapter=About "r" Commands |chapter-url=https://www.wiley.com/legacy/compbooks/negus/rhbf2/r-commands.html |access-date=2018-03-04|date=2004-07-02 }}</ref> With wider public adoption of the Internet, their inherent security vulnerabilities became a problem,<ref>{{Cite CiteSeerX|citeseerx = 10.1.1.178.8497|title = A Case Study of Using a Secure Network Layer Protocol}}</ref> and beginning with the development of [[Secure Shell]] protocols and applications in 1995, its adoption entirely supplanted the deployment and use of r-commands (and [[Telnet]]) on networked systems.<ref>{{cite journal
Line 31:
| style="text-align:left" | rcp || style="text-align:left" | rshd || 514 || TCP ||
|-
| style="text-align:left" | {{code|rexec}} || style="text-align:left" | rexecd || 512 || TCP || <ref>{{cite book |chapter-url=https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.halu001/rexsyn.htm |chapter=
|-
| style="text-align:left" | rlogin || style="text-align:left" | rlogind || 513 || TCP || <ref name="NAG">{{cite book |title=FreeBSD Network Administrators Guide |chapter-url=https://people.freebsd.org/~nik/nag/book.html#x-087-2-intro.tcpip.ports |chapter=More on Ports |access-date=2018-03-04}}</ref>
Line 42:
|-
| style="text-align:left" | rwho || <ref name="NAG"/><ref name="Casad-350"/>
|}
==Protocol==
The original Berkeley package that provides {{code|rlogin}} also features {{code|rcp}} (remote-copy, allowing files to be copied over the network) and
As an example, the protocol is as follows:<ref>{{Cite report |url=https://datatracker.ietf.org/doc/rfc1282/ |title=BSD Rlogin |last=Kantor |first=Brian |date=December 1991 |publisher=Internet Engineering Task Force |issue=RFC 1282}}</ref><syntaxhighlight lang="bash">
▲The original Berkeley package that provides {{code|rlogin}} also features {{code|rcp}} (remote-copy, allowing files to be copied over the network) and {{code|[[Remote Shell|rsh]]}} (remote-shell, allowing commands to be run on a remote machine without the user logging into it). These share the {{code|hosts.equiv}} and {{code|.rhosts}} access-control scheme (although they connect to a different daemon, {{code|rshd}}).
Client:
<null>
user name on the client<null>
user name on the server<null>
terminal type/terminal baud rate<null>
Server:
</syntaxhighlight>The server would check that the user should have access. If so, it returns a message with nothing in it (not even a [[null character]]), meaning the connection is established.
For example:<syntaxhighlight lang="bash">
Client:
<null>
bostic<null>
kbostic<null>
vt100/9600<null>
Server:
</syntaxhighlight>Both {{code|rlogin}} and {{code|rsh}} share the {{code|/etc/hosts.equiv}} (applies to all users on the server) and {{code|$HOME/.rhosts}} (applies to only the user that puts the file in its home folder) access-control scheme, although they connect to different daemons. {{code|rlogin}} connects to {{code|rlogind}}, while {{code|rsh}} connects to {{code|rshd}}.
{{code|hosts.equiv}} and {{code|.rhosts}} uses the same format. The following shows some aspects of the format:<ref>{{Cite web |title=.rhosts File Format for TCP/IP |url=https://www.ibm.com/docs/en/aix/7.2?topic=formats-rhosts-file-format-tcpip |access-date=2023-11-29 |website=www.ibm.com |language=en-us}}</ref><ref>{{Cite web |title=hosts.equiv File Format for TCP/IP |url=https://www.ibm.com/docs/en/aix/7.2?topic=formats-hostsequiv-file-format-tcpip |access-date=2023-11-29 |website=www.ibm.com |language=en-us}}</ref><syntaxhighlight lang="bash">
host1
host2 user_a
-host3
+@group1 -user_b
-@group2
</syntaxhighlight>This allows all users from host1 to login, user_a from host2 to login, no users from host3, all users on group1 except user_b, and no users on group2.
==Commands==
Line 75 ⟶ 100:
===rwho===
Just as the
===rstat===
|