Основы удаленного управления: от r-команд до файлов доступа

Имеется ряд команд для выполнения команд на remote хосте. Они - rlogin, rsh, rcp и rcmd. Они все порождают оболочку на remote хосте и позволяют пользователю выполнять команды. Конечно, клиент должен иметь account на хосте, где команда должна быть выполнена. Таким образом все эти команды выполняют процедуру разрешения. Обычно, клиент сообщает название входа в систему пользователя на сервер, который

# /etc/rpc - miscellaneous RPC-based services
portmapper      100000   portmap sunrpc
rstatd          100001   rstat rstat svc rup perfmeter
rusersd         100002   rusers
nfs             100003   nfsprog
ypserv          100004   ypprog
mountd          100005   mount showmount
ypbind          100007
walld           100008   rwall shutdown
yppasswdd       100009   yppasswd
bootparam       100026
ypupdated       100028   ypupdate

по очереди запрашивает пароль, который утвержден обычным способом. Иногда, однако, желательно ослабить проверки разрешения для некоторых пользователей. Например, если Вы часто должны регистрироваться в других машинах на вашей локальной вычислительной сети, Вы могли бы захотеть быть признанным без ввода пароля каждый раз.

Отключение разрешения желательно только на малом числе хостов, чьи базы данных паролей синхронизированы, или для малого числа из привилегированных пользователей, которые должны обращаться к многим машинам для административной причины. Всякий раз, когда Вы хотите позволять людям регистрироваться на вашем хосте при необходимости точно определить идентичность входа в систему или пароль, удостоверьтесь, что Вы не делаете ошибку, предоставляя доступ кому-нибудь еще.

Имеются два способа блокировать разрешение, для того чтобы проверить r команды. Каждый - для супер пользователя, чтобы позволить некоторым или всем пользователям зарегистрироваться без пароля. Этот доступ управляется файлом, называемым /etc/hosts.equiv. Это содержит список множеств и имен пользователя, которые рассматриваются эквивалентными пользователям на локальном хосте. Альтернативная опция для пользователя - предоставление другим пользователям на некоторых хостах быть перечислены в файле .rhosts в директории пользователя. Для соображений безопасности, этот файл должен принадлежать пользователю или супер пользователю, и не должен быть symbolic link, иначе это будет игнорировано.

Когда клиент запрашивает r обслуживание, его хост и название пользователя ищутся в файле /etc/hosts.equiv, и затем в файле .rhosts пользователя. Как пример, предположим, что janet работает на гауссе и пытается зарегистрироваться в joe's account на euler. Следуя далее, мы обратимся к Janet как клиентскому пользователю, и к Joe как к локальному пользователю.

Теперь, когда Janet вводит:

$ Rlogin  -l joe euler

на гауссе, сервер сначала проверит был ли Janet предоставлен свободный доступ, и если нет, то он попробует просмотреть .Rhosts в исходном каталоге joe's.

Конфигурирование доступа через файлы hosts.equiv и .rhosts

Файл hosts.equiv на euler выглядит следующим образом:

gauss
euler
-public
quark.physics.groucho.edu     andres

Запись состоит из названия хоста, опционально сопровождаемого именем пользователя. Если название хоста указано без имени пользователя, то все пользователи с этого хоста будут допущены к своим локальным аккаунтам без проверок. В представленном примере, Janet могла бы зарегистрироваться в свой аккаунт janet, когда выходит из gauss, и тоже самое касается любого другого пользователя, кроме root. Но если Janet попытается зарегистрироваться как joe, будет запрошен пароль, как обычно.

Если название хоста сопровождается именем пользователя, как в последней строке указанного файла, то только этому пользователю предоставляется доступ без пароля ко всем аккаунтам, кроме аккаунта root. Если перед именем хоста стоит знак "минус", как в записи "-общий", это запрещает доступ ко всем аккаунтам на этом хосте, независимо от того, какие права пользователи предоставляют в своем файле .rhosts.

В среде NFS, рекомендуется устанавливать этому файлу права 444, так как суперпользователь часто имеет ограниченный доступ к файлам на дисках, подключенных через NFS. Стоит отметить, что файл hosts.equiv не проверяется, когда происходит попытка входа под root.

Формат файла .rhosts идентичен файлу hosts.equiv, но его значение немного отличается. Рассмотрим файл .rhosts пользователя Joe на Euler:

chomp.cs.groucho.edu   gauss      janet

Первая запись позволяет joe получать доступ без пароля при регистрации с chomp.cs.groucho.edu, но это не влияет на права других аккаунтов на euler или chomp. Вторая запись немного отличается: janet получает свободный доступ к аккаунту Joe при регистрации с gauss.

Заметьте, что имя хоста клиента определяется обратным DNS-запросом. Адрес вызывающего преобразуется в имя с помощью DNS. Имя хоста клиента проверяется по следующим правилам: