[tjm@ArchPad bin]$ LANG=en [tjm@ArchPad bin]$ pwd /usr/bin [tjm@ArchPad bin]$ ll | grep wireshark -rwxr-x--- 1 root wireshark 88K Apr 25 00:22 dumpcap -rwxr-xr-x 1 root wireshark 2.0M Apr 25 00:23 wireshark-gtk [tjm@ArchPad bin]$ groups `whoami` wheel wireshark users [tjm@ArchPad bin]$
使用命令sudo -G wireshark wireshark-gtk
,我可以启动wireshark-gtk并毫无问题地进行监听。
但是,如果我只是运行wireshark-gtk
它,它会说:
Could not run /usr/bin/dumpcap in child process: Permission denied.
所以,可以设置一个团体优先,这意味着如果我(用户)有一个与文件相同的组 ID,并且该文件已设置组优先级,我将在该组 ID 中运行该文件,而不需要sudo -G
?
顺便说一句,setgid
这不是我想要的,因为它不安全,任何人都可以使用组权限运行此文件。
答案1
说什么id
?
如果您刚刚将自己添加到wireshark组中,我想您将需要注销并再次登录。
(通过谷歌搜索错误消息找到的点)。
答案2
如果您设置/usr/bin/dumpcap
setuid 时没有其他人但组成员wireshark
能够运行它,那么此 setuid 设置是安全的。然后您只需将自己添加到wireshark
组中usermod -aG wireshark $(whoami)
即可。
要以这种方式设置它,请执行以下操作chgrp wireshark /usr/bin/dumpcap; chmod 4710 /usr/bin/dumpcap
顺便说一句,sudo
不适合任意权限操作。如果您仍然不想在文件上使用 setuid,请考虑使用现代工具来实现此目的。
答案3
“团体优先”并不是一个常用术语。我认为你的意思是选择用于文件系统查找的组。不存在这样的事情,或者换句话说,所有组都有“组优先级”:如果一个文件属于一个组(但不属于您的用户),并且您在该组中,那么您将获得组权限,无论该小组是您的主要小组还是补充小组。
如果你在wireshark
组里,那么你就可以跑/usr/bin/dumpcap
。
whoami``` shows that your user account is in the
“ wireshark groups id group, but it doesn't show that your *session* is in the
”的输出。登录时将应用组成员身份。如果您刚刚将自己添加到组中,则需要注销并重新登录。请参阅group. To test that, run
with no arguments, or
我将用户添加到组中,但组对文件的权限仍然没有效果