rsh(1) | rsh(1) |
rsh - удаленный командный интерпретатор
Команда rsh подключается к указанному хосту и выполняет на нем указанную команду.
rsh копирует свой стандартный входной поток удаленной команде, стандартный выходной поток удаленной команды - в свой стандартный выходной поток, а стандартный поток ошибок удаленной команды - в свой стандартный поток ошибок. Сигналы прерывания, выхода и завершения передаются удаленной команде; rsh обычно завершает работу, когда завершает работу удаленная команда.
Если команда не указана, rsh зарегистрирует вас на удаленном хосте с помощью rlogin(1).
Незаэкранированные метасимволы командного интерпретатора интерпретируются на локальной машине, а заэкранированные метасимволы - на удаленной. См. примеры ниже.
Имя_хоста должно находиться в базе данных хостов, которая может содержаться в файле /etc/hosts, в базе данных доменных имен Internet, или и в обоих местах. Каждый хост имеет одно официальное имя (первое имя в записи базы данных) и, возможно, один или несколько псевдонимов. В качестве имени_хоста можно указывать как официальные имена, так и псевдонимы.
Если имя файла, из которого выполняется rsh, отличается от rsh, rsh использует это имя в качестве аргумента имя_хоста. Это позволяет создать символическую связь с rsh с именем, совпадающим с именем хоста, которая при выполнении вызовет удаленный командный интерпретатор на этом хосте. Создав каталог с символическими связями в виде имен часто используемых хостов и включив его в путь поиска командного интерпретатора, можно запускать rsh просто вводя имя хоста в командном интерпретаторе.
На каждой удаленной машине может быть файл /etc/hosts.equiv, содержащий список имен хостов, обладающих доверием, с которыми она разделяет имена пользователей. Пользователи с одним и тем же именем на локальной и удаленной машине могут выполнять rsh с машин, перечисленных в файле /etc/hosts.equiv удаленной машины, не указывая пароль. Отдельные пользователи могут создать аналогичный личный список эквивалентностей в файле .rhosts в своих начальных каталогах. Каждая строка в этом файле содержит два имени, имя хоста и имя пользователя, разделенных пробелом. Запись в файле .rhosts удаленного пользователя позволяет пользователю с соответствующим именем, зарегистрировавшемуся на указанном хосте, использовать rsh для доступа к удаленной машине в качестве удаленного пользователя без указания пароля. Если имя локального хоста не удается найти в файле /etc/hosts.equiv на удаленной машине, и, кроме того, имя локального пользователя и имя хоста не удается найти в файле .rhosts удаленного пользователя, удаленная машина запросит пароль. В файлах /etc/hosts.equiv и .rhosts необходимо указывать официальные имена хостов, содержащиеся в базе данных хостов; псевдонимы в этих файлах указывать нельзя.
Чтобы предотвратить проблемы защиты, владельцем файла .rhosts должен быть либо удаленный пользователь, либо привилегированный пользователь.
rsh не запросит пароль, если в доступе на удаленную машину отказано, за исключением случая, когда при вызове не указана команда.
rsh воспринимает следующие опции:
Тип удаленного командного интерпретатора (sh, ограниченный интерпретатор /usr/lib/rsh или другой) определяется записью пользователя в файле /etc/passwd на удаленной системе.
Команда:
добавляет удаленный файл lizard.file с машины по имени lizard к файлу example.file на локальной машине, тогда как команда:
добавляет файл lizard.file на машине по имени lizard к файлу lizard.file2, который находится на той же машине lizard.
Если система указана в hosts.equiv, ее защита должна быть не хуже защиты локальной системы. Указания одной незащищенной системы в файле hosts.equiv достаточно, чтобы свести на нет защиту всей системы.
Текущая локальная среда не передается удаленному командному интерпретатору.
С помощью rsh нельзя запускать интерактивные команды (типа vi(1)). При необходимости, используйте rlogin.
Иногда опция -n необходима по неочевидным причинам. Например, команда:
введет ваш командный интерпретатор в странное состояние. Очевидно, tar заканчивает работу раньше, чем rsh. Затем rsh пытается писать в закрытый канал ("broken pipe") и, вместо того, чтобы просто остановиться, продолжает "сражаться" с локальным командным интерпретатором за стандартный входной поток. Вызов rsh с опцией -n предотвращает такие проблемы.
Ошибка происходит только когда rsh находится в начале конвейера и не читает стандартный входной поток. Не используйте -n если rsh действительно должна читать стандартный входной поток. Например,
не приводит к ошибке. Если придется использовать -n в подобных случаях, rsh будет ошибочно читать с /dev/null вместо канала.
До Release 4, команда rsh вызывала ограниченный командный интерпретатор. Это программа /usr/lib/rsh и ее можно выполнить, указав полное имя.
Сигналы остановки останавливают только локальный процесс rsh, что определенно неправильно, но это пока трудно исправить по причинам, слишком сложным, чтобы их здесь объяснять.
Copyright 1994 Novell, Inc.
Copyright 1999 В. Кравчук,
OpenXS Initiative, перевод на русский язык
Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру