Em man 2 execve , seção NOTES :
Linux ignores the set-user-ID and set-group-ID bits on scripts.
Veja também:
No Ubuntu 16.04.1:
test.sh script:
#!/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
Como pkaramol ( uid = 1000)
Andromeda $ ./test.sh
pkaramol
1000
Como testuser ( uid = 1001)
Andromeda $ su testuser
Password:
testuser@Andromeda:/home/pkaramol/Desktop$ ./test.sh
testuser
1001
Dado que suid foi definido, por que, na segunda execução, não vemos pkaramol e 1000 na saída? O script não deve ser executado com o ID do proprietário do arquivo?
Em man 2 execve , seção NOTES :
Linux ignores the set-user-ID and set-group-ID bits on scripts.
Veja também: