Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Программные интерфейсы общего назначения > Системные библиотеки > Системные библиотеки > Сетевая библиотека > R > ruserok()



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 сетевой библиотеки