Инструменты пользователя

Инструменты сайта


soft:tcpdump:socket_operation_not_permitted

socket: Operation not permitted

Причина

Читаем man:

      Under Linux:
              You  must  be  root  or tcpdump must be installed setuid to root
              (unless your distribution has a kernel that supports  capability
              bits such as CAP_NET_RAW and code to allow those capability bits
              to be given to particular accounts and to cause those bits to be
              set  on  a  user’s  initial processes when they log in, in which
              case  you   must  have  CAP_NET_RAW  in  order  to  capture  and
              CAP_NET_ADMIN  to  enumerate  network devices with, for example,
              the -D flag).

Т.е., пользователь должен быть root'ом, или процесс должен иметь флаг совместимости CAP_NET_RAW.

Решение

Версии: Ubuntu 9.04/Jaunty, libcap2-bin-2.11-2.

Выполняем:

$ sudo aptitude install libcap2-bin
$ sudo setcap 'cap_net_raw=ep' /usr/sbin/tcpdump

Проверяем:

$ getcap /usr/sbin/tcpdump
/usr/sbin/tcpdump = cap_net_raw+ep
$ tcpdump -n
...

В пакет libcap2-bin также входит модуль для PAM - pam_cap.so. При его использовании флаги совместимости можно задавать на уровне пользователей в файле /etc/security/capability.conf (пример конфигурации находится в /usr/share/doc/libcap2-bin/examples/capability.conf).

Дискуссия

Enter your comment
 
soft/tcpdump/socket_operation_not_permitted.txt · Последние изменения: 16.11.2009 20:26 (внешнее изменение)

Инструменты страницы