Explicação
Quando você executa um comando com sudo , significa apenas que o usuário que está executando esse comando é root .
Portanto, se o comando que você está executando criar algum arquivo, ele terá os owner e group owner fileds definidos como root .
Dependendo dos privilégios dos arquivos (também dos executáveis), isso pode impedir que outros usuários os leiam / escrevam / executem.
Exemplo
Esta é a saída de ls -l /bin/ping no meu computador:
-rwxr-xr-x 1 root root 61168 Feb 11 2017 /bin/ping
Eu explicarei as partes -rwxr-xr-x e root root .
O primeiro caractere ( - ) representa o tipo do arquivo.
- Significa um arquivo normal.
d Significa um diretório.
e assim por diante.
Os próximos 3 caracteres ( rwx ) representam as ações permitidas para o owner .
r Ser capaz de ler um arquivo.
w Ser capaz de gravar em um arquivo.
x Ser capaz de executar um arquivo.
Os próximos 3 caracteres ( r-x ) representam as ações permitidas para o membro do grupo group owner .
r Ser capaz de ler um arquivo.
- Não capaz de gravar em um arquivo.
x Ser capaz de executar um arquivo.
Os últimos 3 caracteres ( r-x ) representam as ações permitidas para usuários que não são nem owner nem membros do grupo group owner .
r Ser capaz de ler um arquivo.
- Não capaz de gravar em um arquivo.
x Ser capaz de executar um arquivo.
root root Significa que owner é o usuário root e group owner é o grupo root .
Solução geral
Para alterar o owner e o group owner para sua conta de usuário, você sempre pode usar
sudo chown username:groupname file_name
( groupname é por padrão igual a username se você não alterá-lo manualmente.)
Isso alterará os campos user para username e group owner para groupname para o arquivo file_name .
Solução para problemas específicos de ping
Como ambos steeldriver e John WH Smith apontou, você também precisa de um setuid bit para que o ping funcione corretamente. As explicações podem ser encontradas aqui e here .
Portanto, isso resolverá o problema com ping :
sudo chmod u+s /bin/ping