На странице руководства для FreeBSD ping:
-s packetsize Specify the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data. Only the super-user may specify val- ues more than default. This option cannot be used with ping sweeps.
Кто-нибудь знает, как я могу позволить не суперпользователям отправлять пинги больше 56? Могу ли я увеличить размер по умолчанию или как-то разрешить использование -s пользователям без полномочий root? Я знаю о последствиях для безопасности, так как это может позволить пользователям запускать ping-поток, поэтому, если я могу ограничить это разрешением только одного пользователя (без оболочки), тем лучше.
Вы можете изменить исходный код и изменить поведение. Вы можете увеличить размер по умолчанию, он в сети 98
из ping.c
в /usr/src/sbin/ping/
. Или вы можете отключить эту функцию онлайн 446
заменив строку на if (0) {
. После того, как вы его измените, запустите make install
.
Я должен задаться вопросом, зачем вам нужен обычный пользователь для отправки большого сообщения ICMP.
Рассмотрите возможность использования sudo, EX:
coryj ALL = NOPASSWD: /bin/ping
Это должно позволить пользователю coryj
бегать /bin/ping
(предостережение: используя любые аргументы, которые ему нравятся, а не только -s
) без пароля.
Обратите внимание на последствия этого для безопасности; см. справочные страницы для sudo(8)
и sudoers(5)
.