Wiki

Clone wiki

comp-house.repo / ping-need-root

проблема

Утилита ping не работает от обычного пользователя. Только от пользователя root.

$ping www.lenta.ru
ping: icmp open socket: Операция не позволяется

Причина.

Ping всегда требовал и требует привелигии root на работу с сокетами, поэтому это одна из утилит с установленным битом suid. Начиная с FC15 бит suid снимают, давая привелегии более адресно через setcap.

Таким образом, если ping теряет бит suid или для новых дистрибутивов привелегию cap_net_raw=ep, то и возникает данная ошибка.

Решение

Установить бит suid (устарело)

chmod u+s /bin/ping

Начиная с FC15 проблема решается

/usr/sbin/setcap cap_net_raw=ep /bin/ping

Проверка

ls -l /usr/bin/ping
-rwxr-xr-x 1 root root 40628 февр. 10 20:56 /usr/bin/ping

getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+ep

Updated