Annotation of 43BSDTahoe/new/help/src/remote, revision 1.1

1.1     ! root        1: .TI REMOTE
        !             2: Using rcp, rlogin, rsh, and .rhosts with the Ethernet Network
        !             3: 
        !             4: You can use the
        !             5: .I rcp ,
        !             6: .I rlogin ,
        !             7: and
        !             8: .I rsh
        !             9: commands from a login session
        !            10: on one Unix machine to gain access to a second Unix machine,
        !            11: which in some useful cases is the same machine.
        !            12: If the machines involved are in different administrative
        !            13: domains or your local account name does not exist on the
        !            14: remote machine, or both, you have to set up a special file called
        !            15: .I .rhosts
        !            16: before you can use these commands.
        !            17: In this article the term,
        !            18: .I machine ,
        !            19: refers to what appears in some documentation as the term,
        !            20: .I host .
        !            21: .SH "What These Commands Do"
        !            22: The remote copy command,
        !            23: .I rcp ,
        !            24: allows you to transfer files or entire directories between machines,
        !            25: and its syntax is very similar to that of the standard Unix
        !            26: .I cp
        !            27: command.
        !            28: With the remote login command,
        !            29: .I rlogin ,
        !            30: you can start up a login session on another machine,
        !            31: and switch between login sessions at will.
        !            32: The remote shell command,
        !            33: .I rsh ,
        !            34: allows you to run exactly one shell command sequence on
        !            35: another machine, but breaks the remote connection when
        !            36: the sequence is done.
        !            37: .LP
        !            38: These commands (as well as
        !            39: .I rwho
        !            40: and
        !            41: .I ruptime )
        !            42: all begin with the letter
        !            43: .E r
        !            44: to designate special remote versions of standard Unix commands.
        !            45: In future versions of Unix they will probably become obsolete
        !            46: as their functions are absorbed by the standard commands.
        !            47: .SH "What These Commands Will Not Do"
        !            48: These commands will not allow remote access to non-Unix machines,
        !            49: such as IBM CMS and DEC VMS.
        !            50: For this you may want to investigate the
        !            51: .I ftp ,
        !            52: .I telnet ,
        !            53: and
        !            54: .I tn3270
        !            55: commands (type
        !            56: .E "man ftp" ,
        !            57: .E "man telnet" ,
        !            58: etc. for more information).
        !            59: Unlike their older Berknet counterparts, the Ethernet commands
        !            60: .I rcp
        !            61: and
        !            62: .I rsh ,
        !            63: but not
        !            64: .I rlogin ,
        !            65: will under no circumstances ask you for a
        !            66: password to a remote account, relying instead on the
        !            67: .I .rhosts
        !            68: mechanism (described below), which must be arranged in advance.
        !            69: They also will not queue up a remote request for later processing if
        !            70: the remote machine happens to be down or unreachable when you issue it.
        !            71: Both these functions are still provided by the
        !            72: .I netcp
        !            73: and
        !            74: .I net
        !            75: commands, which use the otherwise slow and limited Berknet.
        !            76: .SH "A Simple Case Of Remote Copying \- rcp"
        !            77: As an example, suppose you want to copy a file called
        !            78: .I junk
        !            79: from an account on a machine called
        !            80: .I violet
        !            81: to an account of the same name on a machine called
        !            82: .I topaz .
        !            83: If your local machine (the one to which you are logged in) is
        !            84: .I violet ,
        !            85: use the command,
        !            86: .DS
        !            87: % rcp junk topaz:junk
        !            88: .DE
        !            89: and if the local machine is
        !            90: .I topaz ,
        !            91: use the command,
        !            92: .DS
        !            93: % rcp violet:junk junk
        !            94: .DE
        !            95: Suppose now that you have a third account of the same name on the
        !            96: .I ruby
        !            97: machine.
        !            98: If you are logged in to that account, the command would be
        !            99: .DS
        !           100: % rcp violet:junk topaz:junk
        !           101: .DE
        !           102: Note that in the simple examples of this section and the next,
        !           103: your accounts must have the same names and the machines
        !           104: must be in the same administrative domain (must be listed in the
        !           105: .I /etc/hosts.equiv
        !           106: file on both machines; type
        !           107: .E "help domains"
        !           108: for details).
        !           109: .SH "Remote Copying Several Files \- rcp"
        !           110: By analogy with the standard Unix
        !           111: .E cp
        !           112: command, you may copy several files from one machine
        !           113: to a directory on another machine.
        !           114: For example, from your home directory on
        !           115: .I violet ,
        !           116: you can copy all the files in a subdirectory called
        !           117: .I stuff
        !           118: to your home directory on
        !           119: .I topaz
        !           120: using the command,
        !           121: .DS
        !           122: % rcp stuff/* topaz:.
        !           123: .DE
        !           124: where the period following the colon indicates to copy to
        !           125: the default current directory, your home directory on
        !           126: .I topaz .
        !           127: Doing the same transfer when the local machine is
        !           128: .I topaz
        !           129: instead of
        !           130: .I violet
        !           131: is similar to the last example, but with a small change:
        !           132: .DS
        !           133: % rcp violet:"stuff/*" .
        !           134: .DE
        !           135: The quotation marks are needed to delay interpretation of
        !           136: the special
        !           137: .E *
        !           138: notation until the string,
        !           139: .E stuff/* ,
        !           140: gets to
        !           141: .I violet .
        !           142: .LP
        !           143: Also by analogy with the Unix
        !           144: .E cp
        !           145: command, you can copy entire directory trees (that is, all a
        !           146: directory's files and subdirectories at all levels) between machines.
        !           147: For example, from your home directory on
        !           148: .I topaz ,
        !           149: you can copy your entire account to a subdirectory called
        !           150: .I oldaccount
        !           151: on
        !           152: .I violet
        !           153: using the command,
        !           154: .DS
        !           155: % rcp -r . violet:oldaccount
        !           156: .DE
        !           157: If your local machine (the one to which you are logged in) were
        !           158: .I violet
        !           159: instead, the command would look like
        !           160: .DS
        !           161: % rcp -r topaz:. oldaccount
        !           162: .DE
        !           163: .SH "Error Messages You May Encounter"
        !           164: If the examples in this section or the last give you error
        !           165: messages such as ``Permission denied'' or ``Login incorrect'',
        !           166: you will have to set up a
        !           167: .I .rhosts
        !           168: file on the remote machine.
        !           169: If you see any of the error messages ``Connection refused'',
        !           170: ``Connection timed out'', or ``Network unreachable'',
        !           171: the remote machine is inaccessible.
        !           172: Since this condition usually lasts no more than a few hours,
        !           173: you can try again later.
        !           174: .SH "When The .rhosts File Is Needed"
        !           175: Whenever you try to use one of the commands
        !           176: .I rcp ,
        !           177: .I rlogin ,
        !           178: or
        !           179: .I rsh
        !           180: with two machines in different administrative domains
        !           181: or with different local and remote account names,
        !           182: you must set up a special file called
        !           183: .I .rhosts .
        !           184: Its purpose is to maintain system security by
        !           185: certifying that you, from your local account, are authorized to use
        !           186: a particular account on a remote machine.
        !           187: Within the same administrative domain it is assumed that
        !           188: accounts having the same name belong to the same person,
        !           189: in which case this file is not needed.
        !           190: In all cases of different account names or different domains,
        !           191: however, a
        !           192: .I .rhosts
        !           193: file identifying your local machine and account
        !           194: must be set up in the home directory of the remote account.
        !           195: This can be hard to remember, so for emphasis,
        !           196: .DS
        !           197: SET UP THE .RHOSTS FILE ON THE REMOTE ACCOUNT.
        !           198: .DE
        !           199: Once your local machine and account names have
        !           200: been added to a remote account's
        !           201: .I .rhosts
        !           202: file, you
        !           203: have complete access to the account,
        !           204: including all its files and computing resources.
        !           205: So, for example, you could start up a remote login session on that
        !           206: account without having to know the password.
        !           207: This technique can be useful if you want to let someone use your
        !           208: account for a limited time without compromising your password,
        !           209: because when they no longer need access you can delete them from the
        !           210: .I .rhosts
        !           211: file.
        !           212: .LP
        !           213: You will probably want to be careful about who you enter
        !           214: into this file and how long you leave them there.
        !           215: Periodically, you may want to check that no one who
        !           216: has access to your account has added others to the file
        !           217: without your knowledge.
        !           218: It may also be wise to make sure that only your account has
        !           219: read or write access to your
        !           220: .I .rhosts
        !           221: file by setting the appropriate file permissions.
        !           222: .SH "Setting Up A .rhosts File"
        !           223: If you want the system to recognize your
        !           224: .I .rhosts
        !           225: file, it must be located in your home directory,
        !           226: but if you have no
        !           227: .I .rhosts
        !           228: at all the system will not complain.
        !           229: You create and modify it using a text editor, such as
        !           230: .I vi ,
        !           231: and make one-line entries consisting of
        !           232: a machine name, a space, and an account name.
        !           233: The existence of such an entry means that that
        !           234: account on that machine can access your account (where the
        !           235: .I .rhosts
        !           236: file is located) without a password.
        !           237: The following
        !           238: .I .rhosts
        !           239: file that might appear in an account on the
        !           240: .I topaz
        !           241: machine would give access to
        !           242: .I fred
        !           243: and
        !           244: .I jerry
        !           245: from the
        !           246: .I violet
        !           247: machine, and to
        !           248: .I jane
        !           249: from the
        !           250: .I gumball
        !           251: machine.
        !           252: .DS
        !           253: violet fred
        !           254: violet jerry
        !           255: gumball jane
        !           256: .DE
        !           257: Often a machine has several variant names which may be used
        !           258: interchangeably in certain contexts, but the mechanism that uses
        !           259: .I .rhosts
        !           260: only recognizes one name.
        !           261: When your account is the target of a remote request, the
        !           262: .I .rhosts
        !           263: mechanism will deny access unless the requesting machine's
        !           264: name as it appears in your
        !           265: .I .rhosts
        !           266: file is the same as the first variant appearing in a file called
        !           267: .I /etc/hosts
        !           268: on the your (the target) machine.
        !           269: Here is a
        !           270: .I .rhosts
        !           271: file that might appear on the
        !           272: .I gumball
        !           273: machine.
        !           274: .DS
        !           275: violet fred
        !           276: ucbviolet fred
        !           277: violet.berkeley.edu fred
        !           278: .DE
        !           279: Depending on the first variant name of
        !           280: .I violet
        !           281: appearing in the
        !           282: .I /etc/hosts
        !           283: file on
        !           284: .I gumball ,
        !           285: only one of these lines will give access to
        !           286: .I fred
        !           287: from
        !           288: .I violet ,
        !           289: while the presence of the other two lines does no harm.
        !           290: .SH "Remote Copying Between Different Account Names"
        !           291: Suppose now that the account named
        !           292: .I jane
        !           293: on the
        !           294: .I gumball
        !           295: machine has a
        !           296: .I .rhosts
        !           297: file identifying your local account,
        !           298: .I fred ,
        !           299: on the
        !           300: .I violet
        !           301: machine.
        !           302: You may now do remote copying between these machines,
        !           303: provided that you specify the remote account name,
        !           304: otherwise your local account name will be assumed.
        !           305: For example, from the
        !           306: .I fred
        !           307: account on
        !           308: .I violet
        !           309: you can copy a file called
        !           310: .I stuff
        !           311: to
        !           312: .I jane
        !           313: on
        !           314: .I gumball ,
        !           315: and name the new copy
        !           316: .I stuffing
        !           317: in the process, using the command,
        !           318: .DS
        !           319: % rcp stuff gumball.jane:stuffing
        !           320: .DE
        !           321: This style of specifying a machine-account name combination
        !           322: currently works for Computer Center machines.
        !           323: It is different in some administrative domains, such as those
        !           324: containing Computer Science department machines, where you would use
        !           325: .DS
        !           326: % rcp stuff jane@gumball:stuffing
        !           327: .DE
        !           328: This second style will one day become standard.
        !           329: .SH "Using rcp To Copy Files To The Same Machine"
        !           330: You can use your knowledge of how to transfer files between
        !           331: different account names on different machines, to transfer
        !           332: files between different accounts on the same machine.
        !           333: Without using the network
        !           334: this is tricky, especially when several levels
        !           335: of permission-protected directories are involved,
        !           336: and usually means temporarily opening up access to
        !           337: everyone on the system until the transfer is complete.
        !           338: With
        !           339: .I rcp ,
        !           340: however, it is easy and safe.
        !           341: For example, to transfer the files
        !           342: .I proposal
        !           343: and
        !           344: .I memo
        !           345: from the
        !           346: .I fred
        !           347: acount to the
        !           348: .I jerry
        !           349: account, both on
        !           350: .I violet ,
        !           351: use
        !           352: .DS
        !           353: % rcp proposal memo violet.jerry:.
        !           354: .DE
        !           355: on the
        !           356: .I fred
        !           357: account, and
        !           358: .DS
        !           359: % rcp violet.fred:"proposal memo" .
        !           360: .DE
        !           361: on the
        !           362: .I jerry
        !           363: account.
        !           364: In both cases the appropriate
        !           365: .I .rhosts
        !           366: file must have been set up beforehand.
        !           367: .SH "Remote Login \- rlogin"
        !           368: Using the remote login command,
        !           369: .I rlogin ,
        !           370: from one login session, you can start up another
        !           371: login session on a remote machine, which may be the same
        !           372: as the local machine.
        !           373: For example, the command
        !           374: .DS
        !           375: % rlogin violet
        !           376: .DE
        !           377: would try to start up a remote login session on
        !           378: .I violet 
        !           379: using the same account name as your local account.
        !           380: If you had such an account on the remote machine and the
        !           381: local and remote machines were in the same administrative
        !           382: domain, or if the remote account had the appropriate entry in its
        !           383: .I .rhosts
        !           384: file, you would then find
        !           385: yourself in a remote login session with no questions asked.
        !           386: If this were not the case,
        !           387: .I rlogin
        !           388: would ask you for the password to the remote account 
        !           389: and you would have to type it in correctly before the
        !           390: .I rlogin
        !           391: session would begin.
        !           392: At that point you could set up the
        !           393: .I .rhosts
        !           394: file so that in the future you could
        !           395: .I rlogin
        !           396: without a password.
        !           397: .LP
        !           398: In order to
        !           399: .I rlogin
        !           400: to an account of a different name, use the
        !           401: .I \-l
        !           402: (ell) option followed by the account name.
        !           403: For example, to
        !           404: .I rlogin
        !           405: to the
        !           406: .I fred
        !           407: account located on
        !           408: .I violet ,
        !           409: use
        !           410: .DS
        !           411: % rlogin violet -l fred
        !           412: .DE
        !           413: which would ask you for
        !           414: .I fred 's
        !           415: password unless the appropriate entry appeared in
        !           416: .I fred 's
        !           417: .I .rhosts
        !           418: file.
        !           419: .SH "Suspending Remote Login Sessions"
        !           420: From one
        !           421: .I rlogin
        !           422: session you may start up another
        !           423: .I rlogin
        !           424: session, and from there another, and so forth.
        !           425: Anytime you want to resume the original login session you
        !           426: can either logout from or suspend the current session.
        !           427: To suspend the current
        !           428: .I rlogin
        !           429: session and return
        !           430: to the original non-remote login session, type
        !           431: .E ~^Z
        !           432: (tilde followed by control-Z) at the beginning of a line
        !           433: and then type a return.
        !           434: Later you may resume that remote session by using the
        !           435: .I fg
        !           436: command after the shell prompt, which
        !           437: is the command to foreground jobs in the C shell.
        !           438: .LP
        !           439: Suppose you are in an
        !           440: .I rlogin
        !           441: session on machine
        !           442: .I violet
        !           443: that you started up on
        !           444: .I topaz
        !           445: during an
        !           446: .I rlogin
        !           447: session started up on
        !           448: .I gumball ,
        !           449: in other words, suppose the chain of login sessions looks like
        !           450: .DS
        !           451: gumball -> topaz -> violet
        !           452: .DE
        !           453: Then typing
        !           454: .E ~^Z
        !           455: at the beginning of a line followed by a return
        !           456: would bring you back to the original non-remote session on
        !           457: .I gumball ,
        !           458: as mentioned above.
        !           459: If instead you wanted to be brought back to
        !           460: .I topaz ,
        !           461: that is, to the second login session in the chain,
        !           462: then you would type
        !           463: .E ~~^Z
        !           464: follwed by a return.
        !           465: In general, if you want to suspend an
        !           466: .I rlogin
        !           467: session and be brought back to the
        !           468: .I n -th
        !           469: login session in a chain, type
        !           470: .I n
        !           471: .E ~ 's
        !           472: at the beginning of a line, followed by
        !           473: .E ^Z
        !           474: and a return.
        !           475: .LP
        !           476: Currently there is a bug which sometimes prevents an
        !           477: attempt to suspend a remote login session to fail;
        !           478: if this happens to you, just try again.
        !           479: Also note that during a remote login session, all lines
        !           480: that begin with
        !           481: .E ~
        !           482: are treated specially, one example being
        !           483: .E ~^Z .
        !           484: Another example is
        !           485: .E ~. ,
        !           486: which abruptly terminates (rather than suspends) the remote login session.
        !           487: It is subject to an
        !           488: .I n
        !           489: tildes rule similar to that for
        !           490: .E ~^Z .
        !           491: When a line beginning with
        !           492: .E ~
        !           493: is not recognized, the line is echoed to the terminal
        !           494: when you type a return in order to let you know that
        !           495: it was not intercepted.
        !           496: This is particularly noticeable when composing
        !           497: a letter from within the
        !           498: .I mail
        !           499: program if you are in the habit of using
        !           500: tilde escape sequences.
        !           501: .SH "Character Parity Stripping With rlogin"
        !           502: A remote login session has all the appearances of a normal login
        !           503: session aside from marginal typing delays, special treatment of
        !           504: lines beginning with
        !           505: .E ~ ,
        !           506: and stripping of character parity.
        !           507: Sometimes you may want to preserve parity, for example, when
        !           508: using a terminal emulation program or running the
        !           509: .I emacs
        !           510: editor.
        !           511: This is done by starting up
        !           512: .I rlogin
        !           513: with the
        !           514: .I \-8
        !           515: option, as in
        !           516: .DS
        !           517: % rlogin violet -l fred -8
        !           518: .DE
        !           519: which preserves all 8 bits of characters transmitted during the
        !           520: .I rlogin
        !           521: session.
        !           522: .SH "Remote Command Execution \- rsh"
        !           523: The remote shell command,
        !           524: .I rsh ,
        !           525: allows you to run exactly one shell command sequence on
        !           526: another machine, but breaks the remote connection when
        !           527: the sequence is done.
        !           528: It is somewhat similar to an
        !           529: .I rlogin
        !           530: session in which you run one command sequence and then logout,
        !           531: but unlike
        !           532: .I rlogin ,
        !           533: it allows you to redirect input and output with files on
        !           534: the local machine and it never asks for a password.
        !           535: Otherwise, the
        !           536: .I rsh
        !           537: command is subject to the same rules with respect to
        !           538: .I .rhosts
        !           539: files as
        !           540: .I rcp
        !           541: and
        !           542: .I rlogin
        !           543: and accepts a
        !           544: .I \-l
        !           545: option for specifying an account name different from
        !           546: the local account name.
        !           547: For example, to display a detailed listing of the files in the
        !           548: .I kate
        !           549: account on the remote machine
        !           550: .I soda ,
        !           551: use
        !           552: .DS
        !           553: % rsh soda -l kate ls -l
        !           554: .DE
        !           555: which works provided you have set up the appropriate
        !           556: .I .rhosts
        !           557: file beforehand.
        !           558: .SH "When Remote Commands Need Quoting"
        !           559: Quotation marks around a command are needed in case
        !           560: it contains meta-characters that you want interpreted
        !           561: on the remote machine.
        !           562: So, from the previous example, to save the output listing
        !           563: in a local file called
        !           564: .I localfile ,
        !           565: use
        !           566: .DS
        !           567: % rsh soda -l kate ls -l > localfile
        !           568: .DE
        !           569: and to save it in a remote file called
        !           570: .I remotefile ,
        !           571: on the
        !           572: .I soda
        !           573: machine, use
        !           574: .DS
        !           575: % rsh soda -l kate "ls -l > remotefile"
        !           576: .DE
        !           577: .SH "Backgrounding An rsh Command"
        !           578: Sometimes you may wish to run a lengthy
        !           579: .I rsh
        !           580: or
        !           581: .I rcp
        !           582: command in the background.
        !           583: This is done by typing an
        !           584: .E &
        !           585: at the end of the command, as with other Unix commands.
        !           586: In the case of
        !           587: .I rsh ,
        !           588: however, you can do this only if you have explicitly
        !           589: specified from where the command input is coming, because
        !           590: .I rsh
        !           591: will try to read from the terminal by default,
        !           592: even if the command sequence being run uses no terminal input.
        !           593: So you must either redirect input from
        !           594: a data file or indicate that there is no input by giving the
        !           595: .I \-n
        !           596: option to
        !           597: .I rsh .
        !           598: .LP
        !           599: For example, suppose you want to copy your current directory on
        !           600: .I violet ,
        !           601: including all its files and directories at all levels, to the
        !           602: your account on
        !           603: .I soda
        !           604: such that the file modification times are the same
        !           605: for the remote copy as for the original directory.
        !           606: In addition suppose you want to
        !           607: background this time-consuming process.
        !           608: You cannot use
        !           609: .I "rcp \-r"
        !           610: without changing the file modification times, so
        !           611: you must use the
        !           612: .I tar
        !           613: command twice \- once locally and once remotely \- as in
        !           614: .DS
        !           615: % tar cBf - . | rsh soda tar xBf - &
        !           616: .DE
        !           617: which you run from
        !           618: .I violet .
        !           619: Backgrounding this command works since the input to
        !           620: .I rsh
        !           621: is specified.
        !           622: If on the other hand you are currently logged in to
        !           623: .I soda ,
        !           624: you must use the
        !           625: .I \-n
        !           626: option, as in
        !           627: .DS
        !           628: % rsh violet -n tar cBf - . | tar xBf - &
        !           629: .DE
        !           630: If you forget to use
        !           631: .I \-n
        !           632: in a situation where it is needed, your command will
        !           633: be suspended with the message, ``Stopped (tty input)''.
        !           634: To resume execution you have to bring it back to the foreground with the
        !           635: .I fg
        !           636: command.
        !           637: .SH "Abbreviating rlogin And rsh Using /usr/hosts"
        !           638: There are shortened forms for
        !           639: .I rlogin
        !           640: and
        !           641: .I rsh
        !           642: which require you to have the directory
        !           643: .I /usr/hosts
        !           644: in your searchpath (type
        !           645: .E "help searchpath"
        !           646: for more information).
        !           647: Once your searchpath contains
        !           648: .I /usr/hosts ,
        !           649: a command beginning with a machine name is
        !           650: transformed into the same command with the word,
        !           651: .E rsh ,
        !           652: prepended.
        !           653: Here are some examples of this transformation:
        !           654: .DS
        !           655: .ta \w'violet -l fred ls -l \fRbecomes\fP'uR +\w'  'u
        !           656: violet -l fred ls -l \fRbecomes\fP     rsh violet -l fred ls -l
        !           657: violet -l fred       \fRbecomes\fP     rsh violet -l fred
        !           658:        \fReffectively becoming\fP      rlogin violet -l fred
        !           659: violet -l fred -8    \fRbecomes\fP     rsh violet -l fred -8
        !           660:        \fRNOT effectively becoming\fP  rlogin violet -l fred -8
        !           661: .DE
        !           662: The first example is straightforward.
        !           663: In the second example it happens that when
        !           664: .I rsh
        !           665: finds no remote command to run, it turns you over to
        !           666: .I rlogin
        !           667: after first recognizing the
        !           668: .I \-l
        !           669: option.
        !           670: In the third example, unfortunately, the
        !           671: .I rsh
        !           672: command does not recognize the
        !           673: .I \-8
        !           674: option, so instead of turning you over to
        !           675: .I rlogin ,
        !           676: it tries to run
        !           677: .E -8
        !           678: as a remote command (sic).
        !           679: .LP
        !           680: Another problem can arise when a machine name is the same as
        !           681: an existing command name.
        !           682: This is the case when you begin a command with the name
        !           683: .I pearl ,
        !           684: for example, which runs either the PEARL programming language
        !           685: environment or an
        !           686: .I rsh
        !           687: command depending on the location of
        !           688: .I /usr/hosts
        !           689: in your searchpath.
        !           690: 
        !           691: 
        !           692: jak

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.