Por que recebo 'egrep: / etc / shadow: Permission denied' ao executar este comando awk?

1

Alguém sabe por que esse comando:

sudo awk -v LIMIT=50000 -F: '(>=LIMIT) && (!=65534) {print }' /etc/passwd | tee - |egrep -f - /etc/shadow > /home/bulgarini/server_transfer/shadow.sync

dá a mensagem

egrep: /etc/shadow: Permission denied
    
por user1403546 03.07.2014 / 19:51

2 respostas

1

Veja as permissões do arquivo /etc/shadow :

ls -l /etc/shadow

A saída é algo como:

-rw-r----- 1 root shadow 1530 apr 10 08:47 /etc/shadow

Portanto, somente o root e os usuários do grupo de sombra têm permissões para ler esse arquivo. Então, em conclusão, você precisa executar esse comando como root.

Se você acha que executa esse comando composto como raiz porque colocou sudo na frente dele, está errado - nesse caso, sudo afeta apenas o comando awk e nada mais após o canal (% código%). Eu sugiro o seguinte:

sudo -i
awk -v LIMIT=50000 -F: '(>=LIMIT) && (!=65534) {print }' /etc/passwd | tee - |egrep -f - /etc/shadow > /home/bulgarini/server_transfer/shadow.sync
exit
    
por Radu Rădeanu 03.07.2014 / 20:00
0

tente isso

sudo awk -v LIMIT=50000 -F: '(>=LIMIT) && (!=65534) {print }' /etc/passwd | tee - |sudo egrep -f - /etc/shadow > /home/bulgarini/server_transfer/shadow.sync

ou

sudo awk -v LIMIT=50000 -F: '(>=LIMIT) && (!=65534) {print }' /etc/passwd | tee - | sudo egrep -f - /etc/shadow > /home/bulgarini/server_transfer/shadow.sync

Você precisa de privilégios sudo para executar o egrep e depois de um | é considerado um novo comando por isso também precisa de um sudo

    
por mchid 03.07.2014 / 20:06