Permisos denegados al propietario, aunque está configurado en 666 en el directorio .ssh

12

Hace poco jugué con el directorio .ssh. Hice algunos cambios de permisos, creo, y ahora ya no me deja acceder. Puedo acceder a él como usuario root (sudo -i) pero no como somesh

Obtengo permiso denegado al enumerar o codificar en .ssh aunque muestre los archivos

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

Iniciar sesión como root y ls da los siguientes resultados

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

Incluso los archivos dentro de .ssh son propiedad de somesh: somesh y 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
fuente
55
Consulte ¿Por qué chmod 644 hace que los directorios sean inaccesibles? . AFAIK los permisos correctos para el ~/.sshdirectorio es 700( drwx------).
steeldriver

Respuestas:

21

Steeldriver tiene razón. En el directorio también necesita xacceder a la bandera para poder enumerar los archivos dentro.

Arreglar el directorio usando chmod 700 ~/.sshdebería ayudarlo a entrar en este estado (correcto):

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

También debe arreglar sus claves usando chmod 600 ~/.ssh/id_rsay chmod 644 ~/.ssh/*.pubpara obtener esto:

$ 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
fuente
Me las arreglé para arreglar esto antes de sí mismo, copiándolo en otro lugar y luego volviéndolo a copiar
Somesh Mukherjee
-2

Cuando ejecuta el comando ls -l en cualquier directorio, la primera columna es la columna de permiso que se interpreta de la siguiente manera:

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

(TIPO) ---- (usuario) ----- (grupo) ---- (otros)

TIPO: Si '-' , es un archivo. Si 'd' es un directorio.

Permisos: lectura: 4, escritura: 2, ejecución: 1

Entonces, para leer, escribir y ejecutar, sus permisos serán 7 en el grupo de usuarios.

Puedes usar

sudo chmod 7 6 6 file_name 

o

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

-R : esto modifica el permiso de la carpeta principal y los objetos secundarios dentro de

Dhaval Simaria
fuente
2
No entiendo la parte TIPO; También chmod 700 file_namey chmod u+x file_namehacer dos cosas completamente diferentes. El primero establece los permisos en rwx/---/---, el segundo solo establece el xbit para el propietario (y a partir de 666él cambiará el archivo a 766, no a 700).
kos
1
@kos, s / he significa que el primer campo en la cadena indica el tipo de entrada de archivo. Un -carácter significa que es un archivo "normal". A dsignifica que es un directorio. También hay otros, como c, l(para enlace simbólico) s, y aún más para otros sistemas operativos.
Josh
@ Josh Sí, el diseño me confundió.
kos