T. D. Nguyen Asked: 2019-06-16 04:40:51 +0800 CST2019-06-16 04:40:51 +0800 CST 2019-06-16 04:40:51 +0800 CST 没有 setuid 的 Ubuntu 772 Linux 内核支持可执行二进制文件的 setuid、setgid 权限。 是否可以构建没有这些功能的内核? 没有这些,管理员是唯一可以篡改系统的用户。 security kernel 1 个回答 Voted Best Answer vidarlo 2019-06-16T04:55:33+08:002019-06-16T04:55:33+08:00 可能可以从内核中删除此功能,也可以使用该nosuid选项挂载没有 suid 的文件系统。这让我觉得更简单,并且会达到同样的效果。 但是它破坏了很多功能。/usr/这是Ubuntu 18.04 上的 setuid 和 `/bin/ 中的命令列表: $ find /usr /bin -perm -4000 /usr/bin/pkexec /usr/bin/gpasswd /usr/bin/traceroute6.iputils /usr/bin/newgrp /usr/bin/arping /usr/bin/chfn /usr/bin/chsh /usr/bin/passwd /usr/bin/sudo /usr/lib/xorg/Xorg.wrap /usr/lib/eject/dmcrypt-get-device /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 /usr/lib/s-nail/s-nail-privsep /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/lib/openssh/ssh-keysign /usr/lib/policykit-1/polkit-agent-helper-1 /usr/sbin/pppd /bin/ping /bin/mount /bin/umount /bin/su /bin/fusermount 用户将无法再更改自己的密码。他们将无法安装 USB 设备。他们将无法提升特权。他们将无法 ping 删除主机。可能还有更多意想不到的后果。 简而言之,如果您的目标是保护您的系统,那么您可能会喊错三个。更好的方法可能是研究 AppArmomur 或 SELinux,它试图以比标准 Linux 内核更严格的方式强制执行用户权限。这是有代价的:增加了复杂性。 如果你对一个普通的 Ubuntu 系统这样做,你可能会看到各种有趣的行为。
可能可以从内核中删除此功能,也可以使用该
nosuid
选项挂载没有 suid 的文件系统。这让我觉得更简单,并且会达到同样的效果。但是它破坏了很多功能。
/usr/
这是Ubuntu 18.04 上的 setuid 和 `/bin/ 中的命令列表:用户将无法再更改自己的密码。他们将无法安装 USB 设备。他们将无法提升特权。他们将无法 ping 删除主机。可能还有更多意想不到的后果。
简而言之,如果您的目标是保护您的系统,那么您可能会喊错三个。更好的方法可能是研究 AppArmomur 或 SELinux,它试图以比标准 Linux 内核更严格的方式强制执行用户权限。这是有代价的:增加了复杂性。
如果你对一个普通的 Ubuntu 系统这样做,你可能会看到各种有趣的行为。