Читаем 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).
Дискуссия