Ping é um programa de propriedade da raiz com o conjunto de bits de identificação do usuário.
$ ls -l `which ping`
-rwsr-xr-x 1 root root 35752 Nov 4 2011 /bin/ping
Pelo que entendi, se um usuário executar o processo de ping, o ID do usuário efetivo mudará do ID do usuário real (ou seja, o ID do usuário da pessoa que iniciou o processo) para o ID do usuário raiz. No entanto, quando tento isso e examino a saída do ps para ver se o processo de ping está sendo executado como usuário root, ainda recebo a identificação real do usuário.
ps -e -o user,ruser,euser,cmd,args | grep ping
sashan sashan sashan ping -i 10 -c 1000 www.goog ping -i 10 -c 1000 www.google.com
Respostas:
ping
precisa de root para abrir um soquete no modo bruto. Essa é literalmente a primeira coisa que faz quando é iniciada:Essa é a única coisa para a qual ele precisa ser root; assim, como muitos programas, ele imediatamente reduz seu nível de privilégio de volta à sua conta de usuário normal:
fonte