bmarquesm
(usa Fedora)
Enviado em 24/12/2014 - 17:26h
Olá a galera do viva o linux, gostaria de tirar uma dúvida a respeito de um dos bits especiais de permissões no linux, o SUID.
Pelas definições que encontrei este bit tem efeitos somente em executáveis do linux, e faz com que um determinado binário seja executado com as permissões de seu dono, e não com as de quem executou, como é o tradicional. O problema é que fiz testes para ver realmente isso em funcionamento, porém não funcionou como eu esperava com o executável ping, como segue o exemplo:
-- SUID SETADO NO PING
root@ubuntu:/home/core# ls -lha /bin/ping
-rwsr-xr-x 1 root root 34K 2010-11-15 06:08 /bin/ping
-- PING EXECUTADO COM O USUÁRIO CORE
core@ubuntu:/tmp$ ping 8.8.8.8 -c4
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=56 time=55.4 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=56 time=47.3 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=56 time=60.7 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=56 time=50.5 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3017ms
rtt min/avg/max/mdev = 47.351/53.534/60.724/5.065 ms
-- EXECUÇÃO AINDA COMO CORE
root@ubuntu:/home/core# ps aux | grep ping | grep -v grep
core 3847 1.0 0.1 1940 508 pts/3 S+ 17:11 0:00 ping 8.8.8.8 -c4
Quando faço o teste com o utilitário shutdown, por exemplo, funciona normalmente:
-- SUID SETADO NO SHUTDOWN
root@ubuntu:/home/core# ls -lha /sbin/shutdown
-rwsr-xr-x 1 root root 50K 2011-04-20 19:49 /sbin/shutdown
-- SHUTDOWN EXECUTADO COM O USUÁRIO CORE
core@ubuntu:/tmp$ shutdown -h 30
Broadcast message from core@ubuntu
(/dev/pts/3) at 17:14 ...
The system is going down for halt in 30 minutes!
-- SHUTDOWN SENDO EXECUTADO COM O USUÁRIO ROOT
root@ubuntu:/home/core# ps aux | grep shutdown | grep -v grep
root 3852 0.1 0.2 4424 1008 pts/3 S+ 17:14 0:00 shutdown -h 30
Por que isso ocorre? O ping não deveria ser executado como root, já que possui o SUID setado e o root é o dono do binário?