Permissões negadas ao proprietário, embora estejam definidas como 666 no diretório .ssh

12

Recentemente, eu brinquei com o diretório .ssh. Fiz algumas alterações de permissão, acho e agora não me permitirá mais acessá-lo. Eu posso acessá-lo como usuário root (sudo -i), mas não como algo

Recebo permissão negada ao listar ou cding em .ssh, mesmo que mostre os arquivos

ls: cannot access /home/somesh/.ssh/amazon.pem: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa: Permission denied
ls: cannot access /home/somesh/.ssh/known_hosts: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa.pub: Permission denied
total 0
-????????? ? ? ? ?            ? amazon.pem
-????????? ? ? ? ?            ? id_rsa
-????????? ? ? ? ?            ? id_rsa.pub
-????????? ? ? ? ?            ? known_hosts

Efetuar login como root e ls fornece os seguintes resultados

# ls -l /home/somesh/ -a |grep ssh
drw-rw-rw-  2 somesh somesh 4096 Aug 27 15:45 .ssh

Até os arquivos dentro de .ssh são de propriedade de somesh: somesh e chm

-rw-rw-rw- 1 somesh somesh 1692 Aug 27 15:45 amazon.pem
-rw-rw-rw- 1 somesh somesh 1675 Aug 25 20:01 id_rsa
Somesh Mukherjee
fonte
5
Consulte Por que o chmod 644 torna os diretórios inacessíveis? . AFAIK, as permissões corretas para o ~/.sshdiretório são 700( drwx------).
Steeldriver 27/08/2015

Respostas:

21

Steeldriver está certo. No diretório, você também precisa xacessar o sinalizador para poder listar os arquivos.

A chmod 700 ~/.sshcorreção do diretório usando deve ajudá-lo a entrar neste estado (correto):

$ ls -ld ~/.ssh
drwx------. 2 user user 4096 Aug 26 10:37 /home/user/.ssh

Além disso, você deve corrigir suas chaves usando chmod 600 ~/.ssh/id_rsae chmod 644 ~/.ssh/*.pubpara obter isso:

$ ls -l ~/.ssh/
-rw-------. 1 user user  1766 Mar  7  2014 id_rsa
-rw-r--r--. 1 user user   415 Mar  7  2014 id_rsa.pub
Jakuje
fonte
Eu consegui corrigir isso antes de si, copiando-o em outro lugar e, em seguida, copiá-lo de volta
Somesh Mukherjee
-2

Quando você executa o comando ls -l em qualquer diretório, a primeira coluna é a coluna de permissão, que é interpretada da seguinte maneira:

1 ------------- 2 3 4 ------- 5 6 7 ------- 8 9 10

(TIPO) ---- (usuário) ----- (grupo) ---- (outros)

TIPO: Se '-' , é um arquivo. Se 'd' , é um diretório.

Permissões: ler: 4, escrever: 2, executar: 1

Então, para ler, escrever e executar suas permissões serão 7 no grupo de usuários.

Você pode usar

sudo chmod 7 6 6 file_name 

ou

sudo chmod -R u+x /home/somesh/.ssh 

-R - modifica a permissão da pasta pai e dos objetos filhos dentro

Dhaval Simaria
fonte
2
Eu não entendo a parte TYPE; também chmod 700 file_namee chmod u+x file_namefaça duas coisas completamente diferentes. O primeiro define as permissões para rwx/---/---, o segundo apenas define o xbit para o proprietário (e, a partir 666dele, o arquivo será alterado para 766, e não para 700).
kos
1
@kos, s / he significa que o primeiro campo na string indica o tipo de entrada do arquivo. Um -caractere significa que é um arquivo "normal". A dsignifica que é um diretório. Há outros, também, gosto c, l(para ligação simbólica), se ainda mais para outros sistemas operacionais.
28415 Josh
@ Josh Sim, o layout me confundiu.
kos