Проверить личность удаленного хоста
#include <unistd.h>int iruserok( uint32_t raddr,int superuser,char *ruser,char *luser );int iruserok_sa( const void *raddr,int superuser,int rlen,char *ruser,char *luser );
void *
для избежания зависимостей между <unistd.h>
и <sys/socket.h>
.libsocket
Процедура iruserok() проверяет идентичность удаленного хоста. Она используется серверами для аутентификации клиентов, запрашивающих обслуживание с помощью rcmd().
Функции rcmd(), rresvport(), и ruserok() используют rshd сервер, среди прочего.
Функция iruserok() принимает IP-адрес удаленного хоста, два имени пользователя и флаг, указывающий, совпадает ли имя локального пользователя с именем суперпользователя. Затем, если пользователь не является суперпользователем, проверяется файл /etc/hosts.equiv
.
Если такой поиск не выполнен или завершился неудачно, проверяется файл .rhosts в домашнем каталоге локального пользователя, чтобы узнать, разрешен ли запрос на обслуживание. Если этот файл принадлежит кому-либо, кроме пользователя или суперпользователя, или если он доступен для записи кем-либо, кроме владельца, проверка автоматически не выполняется.
Функция iruserok() может обрабатывать только адреса IPv4; iruserok_sa() и ruserok() могут обрабатывать и другие семейства адресов.
/etc/hosts.equiv
, или хост и имя удаленного пользователя были найдены в файле
.rhosts.
EAGAIN
Unix
gethostbyaddr(), gethostname(), rcmd(), rresvport(), ruserok()
Предыдущий раздел: Описание API сетевой библиотеки