Почему файл, сгенерированный с sudo, не принадлежит root?

Я запускаю следующую команду в терминале.

sudo tcpdump -c 2 -w /tmp/z.pcap icmp

Затем запустите следующую команду в терминале.

ping 8.8.8.8

Сгенерированный файл принадлежит пользователю TCPDAMP вместо root.

$ stat /tmp/z.pcap 
  File: /tmp/z.pcap
  Size: 158             Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d      Inode: 4068722     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  115/ tcpdump)   Gid: (  120/ tcpdump)
Access: 2021-02-25 10:05:52.910772287 -0500
Modify: 2021-02-25 10:06:00.102859691 -0500
Change: 2021-02-25 10:06:00.102859691 -0500
 Birth: 2021-02-25 10:05:52.910772287 -0500

Команда TCPDUMS относится к корню. Почему файл сгенерирован не принадлежит корню?

$ ls -l $(which tcpdump)
-rwxr-xr-x 1 root root 1261512 2021/01/15-17:41:47 /usr/bin/tcpdump
0
задан 25 February 2021 в 18:10

2 ответа

Если раздел является NTFS, добавьте uid и gid в раздел < параметры > записи раздела в /etc/fstab , чтобы Ubuntu сделал вас владельцем раздела.

Сначала проверьте свой идентификатор, введя в терминале только id .

id

Затем добавьте uid и gid следующим образом, предполагая, что здесь 1000 -

/dev/disk/by-uuid/xxxx /mnt/Data ntfs-3g defaults,windows_names,uid=1000,gid=1000 0 0

Now, используя приложение Disks GUI демонтировать и смонтировать раздел.
Если не удается отключить, закройте все приложения, которые могут использовать раздел, например, File Manager, Terminal и т.д.
Если демонтировать все еще не удается, выполните выход из системы и вход в систему, чтобы отразить изменения.

Выполните перекрестную проверку с помощью cd в разделе и введите команду ls -al .

-121--912797-

Отредактируйте файл sudo nano/etc/default/grub , после чего строка «quiet splash» должна быть «», а затем выполните команду sudo update-grub . Теперь на каждом этапе процесса загрузки можно увидеть сообщения о загрузке и сведения о том, где происходит сбой. Вы, безусловно, увидите задержки в каждом шаге с загрузкой так долго. Если вы видите ошибки ввода/вывода, как было упомянуто, диск готовится умереть на вас. После повторной сортировки отредактируйте, чтобы заменить отредактированные настройки, а затем обновите, чтобы вернуть графический экран.

-121--909437-

Поскольку tcpdump породит подпроцесс, принадлежащий tcpdump :

$ ps auf | grep [t]cpdump
root       47749  0.0  0.0  16432  7264 pts/1    S+   16:16   0:00  \_ sudo tcpdump -c 2 -w /tmp/z.pcap icmp
tcpdump    47750  0.0  0.0  11084  6252 pts/1    S+   16:16   0:00      \_ tcpdump -c 2 -w /tmp/z.pcap icmp

Он теряет привилегии, поскольку больше не нуждается в них. Используйте параметр -Z для изменения этого поведения. Подробности см. в этом ответе .

2
ответ дан 18 March 2021 в 23:31

Отредактируйте файл sudo nano/etc/default/grub , после чего строка «quiet splash» должна быть «», а затем выполните команду sudo update-grub . Теперь на каждом этапе процесса загрузки можно увидеть сообщения о загрузке и сведения о том, где происходит сбой. Вы, безусловно, увидите задержки в каждом шаге с загрузкой так долго. Если вы видите ошибки ввода/вывода, как было упомянуто, диск готовится умереть на вас. После повторной сортировки отредактируйте, чтобы заменить отредактированные настройки, а затем обновите, чтобы вернуть графический экран.

-121--909437-

Поскольку tcpdump породит подпроцесс, принадлежащий tcpdump :

$ ps auf | grep [t]cpdump
root       47749  0.0  0.0  16432  7264 pts/1    S+   16:16   0:00  \_ sudo tcpdump -c 2 -w /tmp/z.pcap icmp
tcpdump    47750  0.0  0.0  11084  6252 pts/1    S+   16:16   0:00      \_ tcpdump -c 2 -w /tmp/z.pcap icmp

Он теряет привилегии, поскольку больше не нуждается в них. Используйте параметр -Z для изменения этого поведения. Подробности см. в этом ответе .

-121--909446-

См. man tcpdump . Как правило, рекомендуется НЕ запускать как root, если в этом нет необходимости, поэтому разработчики добавили:

  -Z пользователь
--relinquish-privileges = пользователь
Если tcpdump работает как root, после открытия устройства захвата
или введите savile, измените идентификатор пользователя на user и идентификатор группы
к основной группе пользователей.

Это поведение включено по умолчанию (-Z tcpdump) и может быть
отключено корнем -Z.

Другими словами: tcpdump, когда-то порожденный, не должен сохранять разрешения root, поэтому он их проливает.

6
ответ дан 18 March 2021 в 23:31

Другие вопросы по тегам:

Похожие вопросы: