SETUID 和 SETGID 行为

SETUID 和 SETGID 行为

设置:

~$ ls -l /etc/sudoers
-r--r----- 1 root root 614 2017-09-10 20:29 /etc/sudoers

~$ ls -l /etc/shadow
-rw-r----- 1 root shadow 794 2011-04-18 11:49 /etc/shadow

$ ls -l $(which ht)
-rwsr-sr-x 1 root root 2072344 2011-04-16 07:26 /usr/local/bin/ht

H T是一个 ncurses 十六进制编辑器。

问题:为什么是H T程序能够编辑/etc/sudoers(包括保存更改),但甚至无法读取/etc/shadow?似乎是H T可执行文件应该能够根据其 setuid 位和 root 用户所有权来访问这两个文件。此外,似乎编辑是否可以保存到任一文件,它将/etc/shadow基于根的写入位。然而,setgid 位却意外地发挥了作用。如果我更改/etc/shadow文件团体所有权为根(而不是影子),然后我可以使用 ht 程序访问它。

相关内容