ruserok()

Опознать удаленный хост

Прототип:

#include <unistd.h>
int ruserok( char *rhost,
int superuser,
char *ruser,
char *luser );

Аргументы:

rhost
Имя удаленного хоста, возвращенное функцией gethostbyaddr().
superuser
Ненулевое значение, если локальный пользователь является суперпользователем, в противном случае - ноль.
ruser
Имя удаленного пользователя.
luser
Имя локального пользователя.

Библиотека:

libsocket

Описание:

Процедура ruserok() опознает удаленный хост. Она используется серверами для аутентификации клиентов, запрашивающих обслуживание, с помощью rcmd().

Функции rcmd(), rresvport(), и ruserok() используются rshd сервером (см. Справочник по Утилитам).

Функция ruserok() функция принимает имя удаленного хоста (возвращаемое функцией gethostbyaddr()), два имени пользователей и флаг, указывающий, совпадает ли имя локального пользователя с именем суперпользователя. Затем, если пользователь не является суперпользователем, она проверяет файл /etc/hosts.equiv (описан в Справочнике по Утилитам).

Если этот поиск не выполнен или завершился неудачно, проверяется файл .rhosts в домашнем каталоге локального пользователя, чтобы узнать, разрешен ли запрос на обслуживание. Если этот файл принадлежит кому-либо, кроме пользователя или суперпользователя, или если он доступен для записи кем-либо, кроме владельца, проверка автоматически не выполняется.

Если локальный домен, полученный из gethostname(), совпадает с удаленным доменом, необходимо указать только имя компьютера.

Возвращаемое значение:

0
Имя компьютера указано в файле /etc/hosts.equiv, или хост и удаленное имя пользователя были найдены в файле .rhosts.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EAGAIN
Этот код ошибки перегружен и означает «Все сетевые порты используются».

Классификация:

Unix

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Тематические ссылки:

gethostbyaddr(), gethostname(), iruserok(), iruserok_sa(), rcmd(), rresvport()




Предыдущий раздел: Описание API сетевой библиотеки