LINUX.ORG.RU

tcpdump user/group в gentoo

 , ,


0

1

Сейчас установил tcpdump из основной ветки:

 net-analyzer/tcpdump-4.3.0  USE="-chroot ssl -ipv6 -samba -smi -suid {-test}"
При установке emerge добавил пользователя и группу: tcpdump(104/243).

Если запускать без ключа -w, то всё нормально работает. Но с ключом -w ругается так:

builder ~ # tcpdump -n -p -s0 -i eth0 -w dump.pcap
tcpdump: dump.pcap: Permission denied
Прогнал strace, там любопытный момент:
setgroups32(1, [243])                   = 0
setgid32(243)                           = 0
setuid32(104)
Получается что tcpdump не хватает прав писать в /root. При этом работать она может(как я понял только с правами root).

Как я понимаю, это ошибка в ebuild'e. Как баг им отправить/может кто-нибудь запостит?

USE=«chroot» emerge -1 tcpdump

И проверь, воспроизводится ли так.

А вообще странно, у тебя порядок флагов в выводе начинается с -chroot, затем идет включенный флаг(+ssl), затем снова отключенные флаги.

У меня выхлоп eix-а такой(баг не воспроизводится):

[I] net-analyzer/tcpdump
     Available versions:  3.9.8 3.9.8-r1 ~4.1.1 ~4.2.0 ~4.2.1 4.3.0 {{(+)chroot ipv6 (-)samba smi ssl suid test}}
     Installed versions:  4.3.0(22:10:14 12.09.2012)(chroot ipv6 ssl -samba -smi -suid -test)
Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от xorik

у меня и без suid-а работает нормально, ТС же из под рута пускает. Вот из под юзера да, не взлетит...

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

USE=«chroot» emerge -1 tcpdump

Сейчас попробую

А вообще странно, у тебя порядок флагов в выводе начинается с -chroot, затем идет включенный флаг(+ssl), затем снова отключенные флаги.

На самом деле ничего удивительного, т.к. ставил я с

 USE="-chroot" emerge net-analyzer/tcpdump
И, собственно, что бы показать вывод флагов сборки изменил строку
[ebuild   R    ] net-analyzer/tcpdump-4.3.0  USE="chroot* ssl -ipv6 -samba -smi -suid {-test}" 0 kB
поставив -chroot

greek_31 ★★
() автор топика
Ответ на: комментарий от Pinkbyte

Переустановил, работает. Но файл сохраняется в директорию «/var/lib/tcpdump», что в принципе не удивительно, при включённом chroot'е то.

Как дампы сохранять туда, куда root может писать(раз уж для запуска требуются его права)? =)

greek_31 ★★
() автор топика
Ответ на: комментарий от greek_31

Что-то совсем шаблон разрывает:

builder ~ # id 
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),26(tape),27(video)
builder ~ # ls -ld /var/lib/tcpdump/
drwx------ 2 tcpdump tcpdump 120 Nov 26 16:41 /var/lib/tcpdump/
builder ~ # ls -l /var/lib/tcpdump/
total 4
-rw-r--r-- 1 tcpdump tcpdump 446 Nov 26 16:41 dns.pcap
builder ~ #
Как так?

greek_31 ★★
() автор топика
Ответ на: комментарий от anonymous

Вообще песня:

-Z
    Drops privileges (if root) and changes user ID to user and the group ID to the primary group of user. 
    This behavior can also be enabled by default at compile time. 
Сейчас проверить не могу, но скорее всего сработает. Но, -Z root, звучит так: «Сбросить привилегии (если root) и установить ID на root... »

greek_31 ★★
() автор топика
Ответ на: комментарий от greek_31

Можешь ещё в ебилде заменить --with-user=tcpdump на --with-user=root. Вообще по хорошему должен был быть USE-флаг, который бы переключал это дело.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо. Годно.

Вообще по хорошему должен был быть USE-флаг, который бы переключал это дело.

Так первый пост как раз с вопросом баг/нет с просьбой запостить. Завтра, пожалуй, сам напишу, посмотрю что maintainer скажет.

greek_31 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.