启用 setuid 的文件权限( rws )。
文件所有者:vaisakh
vaisakh@computer:~/me$ ls -l
total 4
-rwsr-xr-x 1 vaisakh vaisakh 60 May 3 17:05 vaisakh.sh
切换到另一个用户var23
vaisakh@computer:~/me$ su var23
Password:
重新检查权限
var23@computer:/home/vaisakh/me$ ls -l
total 4
-rwsr-xr-x 1 vaisakh vaisakh 60 May 3 17:05 vaisakh.sh
也可用于 var23
var23@computer:/home/vaisakh/me$ ./vaisakh.sh
Its vaisakh
total 4
-rwsr-xr-x 1 vaisakh vaisakh 60 May 3 17:05 vaisakh.sh
检查写权限。
注意: 只有 vaisakh(owner) 有写权限。
但由于启用了 s(setuid),文件将在所有者 (vaisakh) 的权限 (rws) 下执行。
( 意味着它将允许 'var23' 写入文件 )
var23@computer:/home/vaisakh/me$ vim vaisakh.sh
var23编辑文件后,再次检查文件权限。
var23@computer:/home/vaisakh/me$ ls -l
total 4
-rwxr-xr-x 1 var23 var23 67 May 3 17:09 vaisakh.sh
var23@computer:/home/vaisakh/me$
文件内容 vaisakh.sh。
var23@computer:~/var23/Prometheus/me1$ cat vaisakh.sh
#!/bin/sh
echo "Its vaisakh"
ls -l
var23@computer:~/var23/Prometheus/me1$
问题:
- 无法理解为什么所有权从vaisakh -> var23 (permission too rws -> rwx ) 改变?
- 文件需要什么最低权限才能使用 setuid(让非所有者用户继承所有者权限)?读取执行(r_x)!
setuid是否仅适用于执行标志?
例如:- 如果实际文件权限是4711,非所有者用户无法读取它。为什么它不提升所有者权限 4711 并允许其他人阅读内容。