Способ ограничить количество портов, к которым один пользователь может подключиться одновременно

Мы можем использовать приведенный ниже скрипт, чтобы найти файл, содержащий более 5 строк

for i in filename1 filename2 filename3 file; do j=`awk '{print NR}' $i| sort -nr| sed -n '1p'`; if [[ $j  > 5 ]]; then echo $i; fi; done| sed '1i below are filenames which having lines more than 5'
3
03.05.2020, 12:13
1 ответ

Чтобы иметь возможность прослушивать порт, необходимо создать сокет. Это делается через

sockfd = socket(AF_INET, SOCK_STREAM, 0);

(в C ). Затем вы можете прослушать этот файловый дескриптор.

Пользователь имеет максимальное количество открытых файлов, см. ulimit -hв вашей системе, чтобы узнать это максимальное количество.

Я точно не помню, требуется ли фактическое соединение для ulimit открытых файлов или прослушивание сокета также считается открытым файлом. Я думал, что слушать тоже важно.

Обратите внимание, что обычный пользователь не может выполнить привязку к порту ниже 1024.

Selinux и apparmor также должны позволять контролировать то, что пользователь может привязать, поскольку порт (никогда не пробовал; только что из документов ).

Обратите внимание, что в реальной жизни я видел исчерпание портов только для эфемерных портов, но никогда для серверных портов.

0
28.04.2021, 23:16

Теги

Похожие вопросы