Я хотел связать порт 992,
при чтении документации, сказано, что
PORTS 512-1023
blockquote>Authorising binding to ports from 512 to 1023 inclusive is not recommended. Some protocols (including some versions of NFS) authorise clients by seeing that they are using a port number in this range. So by authorising a program to be a server for such a port, you are also authorising it to impersonate the whole host for those protocols. To make sure that this isn't done by accident, if the port number requested is in the range 512-1023, authbind will expect the permission files to have an additional ! at the start of their leafname.
Ссылка: authbind
Я не мог понять, что здесь указано leafname , поэтому я не могу выполнить authbind порт 992, как мне это сделать?
В соответствии с моим пониманием имя листа является последней частью имени программы (не включая /
)
, например. если вы хотите выполнить /usr/local/bin/myproc
, имя листа будет myproc
.
Чтобы выполнить программу в зарезервированной области порта - нужно изменить имя листа, чтобы начать с !
, например. /usr/local/bin/myproc
следует переименовать в /usr/local/bin/!myproc
Примечание. Если нет реальной причины для использования портов < 1024 для несистемного применения, было бы предпочтительно использовать портов> 1024 для такого применения.
blockquote>Некоторые фрагменты кода из исходного кода authbind
117 if (hport >= IPPORT_RESERVED/2) tophalfchar= "!"; 137 snprintf(fnbuf,sizeof(fnbuf)-1,"byport/%s%u",tophalfchar,hport); 138 if (!access(fnbuf,X_OK)) authorised(); 145 if (af == AF_INET) { 146 snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s:%u",tophalfchar,np,hport); 147 checkexecflagfile(fnbuf); 148 } 149 150 snprintf(fnbuf,sizeof(fnbuf)-1,"byaddr/%s%s,%u",tophalfchar,np,hport);
tophalfchar установлены быть ! if
hport is >= 1024/2
(1024/2 = 512)Код проверяет строки следующего типа:
- byport /! [ 1113] hport
- byaddr /! np: hport
- и т. Д.
Подробная информация о authbind install / setup / тестирование