SUID 不起作用?

SUID 不起作用?

在 Ubuntu 16.04.1 上:

test.sh脚本:

#!/bin/bash

IAM=$(whoami)
ID=$(id -u $IAM)
echo "${IAM}"
echo "${ID}"


Andromeda $ ls -al | grep test.sh 
-rwsrwxrwx  1 pkaramol pkaramol        71 Δεκ   8 07:52 test.sh

作为pkaramol( uid=1000)

Andromeda $ ./test.sh 
pkaramol
1000

作为testuser( uid=1001)

Andromeda $ su testuser 
Password: 
testuser@Andromeda:/home/pkaramol/Desktop$ ./test.sh 
testuser
1001

既然suid已经设置了,为什么在第二次运行中我们没有在输出中看到pkaramol1000?脚本不是应该使用文件所有者的 ID 来执行吗?

答案1

man 2 execve,注释部分

Linux ignores the set-user-ID and set-group-ID bits on scripts.

另请参阅:

相关内容