在 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
已设置,为什么在第二次运行中,我们没有在输出中看到pkaramol
和?1000
脚本不应该使用文件所有者的 id 执行吗?
从
man 2 execve
,部分注释:另见: