На 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
в выводе? Разве сценарий, как предполагается, не выполняется с идентификатором владельца файла?
От man 2 execve
, раздел NOTES :
Linux ignores the set-user-ID and set-group-ID bits on scripts.
Также см.: