假设我有两个文件
total 8
-r-sr-xr-x 1 root root 34 Oct 8 17:36 openroot.sh
-rwx------ 1 root root 38 Oct 8 17:34 root.txt
内容根目录:
Hi I am root file.
内容openroot命令:
#!/bin/bash
whoami
cat root.txt
现在我是普通用户(例如:person1).我执行以下命令:
./openroot.sh
输出如下:
person1
cat: root.txt: Permission denied
这意味着我无法打开 root.txt。这是怎么回事?
答案1
出于安全原因,Linux 会忽略 shell 脚本的 SUID 位。例如,请参阅http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html由于某些原因。
因此您的 shell 脚本不能以 root 身份运行,并且不允许打开文本文件。