gpt4 book ai didi

linux - 困惑 : File ownership changed with setuid special permission flag

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:29 24 4
gpt4 key购买 nike

启用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

Checking the write permission.

注意: 只有 vaisakh(所有者)有写入权限

但是由于启用了 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$

问题:

  1. 无法理解为什么所有权从 vaisakh -> var23 发生变化(权限也rws -> rwx)?
  2. 一个文件需要多少权限才能使用setuid(让非所有者用户继承所有者权限)?读取-执行(r_x) !
  3. setuid是否只适用于执行标志?

    例如:- 如果实际文件权限为4711,则非所有者用户无法读取它。 为什么不提升所有者权限 4711 并允许其他人阅读内容。

最佳答案

Note: Only the vaisakh(owner) have write permission.

But since the s(setuid) is enabled, file will execute with owner(vaisakh)'s permission(rws).

没有。 setuid 位仅对 true 可执行文件有意义,对脚本或文本文件均无效。

我在 chmod (1) 的联机帮助页上说(强调我的):

4000 (the setuid bit). Executable files with this bit set will run with effective uid set to the uid of the file owner...

但是当您运行一个 shell 脚本时,可执行文件确实是 /bin/sh(或您使用的任何 shell)。

那么在编辑时发生了什么? vim 实际上以只读模式打开原始文件(应该警告它不可写)。在保存时,原始文件被重命名为备份文件,并使用当前文件内容创建一个普通的新文件。根据编辑器配置,备份文件可能会立即删除。因此,真正重要的是对包含该文件的文件夹的写入权限。顺便说一句,这也解释了为什么文件丢失了 setuid 位。

关于linux - 困惑 : File ownership changed with setuid special permission flag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50154737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com