设置:
~$ 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 程序访问它。