Permiso denegado en ~ aunque el propietario aparece como yo

13

De alguna manera, me las arreglé para chmod y chown my ~ en el olvido.

Cuando intento iniciar sesión a través del shell, obtengo

bash: ~/.bashrc : Permission denied

Incluso después ( como root ) he corrido

chown -hR nroach44 /home/nroach44

y

chmod -R 666 /home/nroach44

o ( como nroach44 )

chmod -R 644 /home/nroach44

Ninguno de estos comandos devuelve errores.

También:

ls -la /home/nroach44

Devuelve muchos

drw-rw-rw-  1 nroach44 nroach44 4096 --date-- ti:me foldername

¿Alguna ayuda?

NRoach44
fuente
¡Gracias a todos! ¿Alguna guía sobre qué archivos necesitan qué permisos en la carpeta de inicio ahora? :)
NRoach44
/homedebe ser drwxrwxr-xy root:root, y /home/user rw rw -- or r-dependiendo de si quiere que otros usuarios puedan leer sus archivos de los usuarios. Directorios y archivos ejecutables con x. El mismo userdirectorio interno no será un problema si tiene el grupo = usuario (nroach44: nroach44) como parece tener (solo daría permisos 0 (---) en otros).
Laurent

Respuestas:

14
chmod -R 666 /home/nroach44

o

chmod -R 644 /home/nroach44

Esto hará que todos los archivos en su directorio de inicio no sean ejecutables. No fue una buena idea;)

No sé cómo limpiar este desastre, como una solución rápida que puedes intentar hacer como root:

chmod -R 755 /home/nroach44

Este comando otorgará permisos de ejecución a todos los archivos en su carpeta de inicio. Debería resolver sus problemas inmediatos, pero podría ser una pesadilla de seguridad.

La mejor solución es abrir otra cuenta de usuario y transferirle archivos y configuraciones uno por uno.

Javier Rivera
fuente
66
No sabía que los directorios necesitaban permisos x para abrirse. ¡Gracias!
NRoach44
5

Los directorios deben tener el bit de ejecución establecido para permitirle descender al directorio. Llanura 666es malo, incluso si se está ejecutando como root. Les da a todos permisos de escritura.

Para hacer los archivos más seguros, ejecute:

chmod -R 640 /home/nroach44

Para hacer que las carpetas sean descendibles nuevamente, ejecute:

find /home/nroach44 -type d -exec chmod 750 \;

Nota: Elegí para xx0 porque algunos archivos pueden ser confidenciales y otros no pueden leerlos. Solo para guardar, elimine los permisos de lectura / escritura / ejecución para el mundo.

Lekensteyn
fuente
Solo estaba 666 para probar si funcionaría o no :)
NRoach44
4

Como parece que tiene permisos suficientes en ~, debe /hometener permiso x para otros ( sudo chmod +rx /home) y verificar si los permisos están bien en el /home/nroach44/.bashrcarchivo.

Otro punto, los directorios deben tener permisos x para permitir ingresarlos, por lo que para solucionarlos, debe ejecutar sudo chmod -R +X /home/nroach44.

Laurent
fuente
Saber que se necesitaban permisos de ejecución para ingresar carpetas habría sido bueno saberlo antes, ¡así que gracias!
NRoach44
No sabía de capital X+1
Lekensteyn
el capital Xes muy útil y también me alegró descubrirlo ... ¡¡¡después de mucho tiempo usando find !!
Laurent
1

Esto se debe a que ha desordenado los permisos de todos los archivos en su carpeta HOME. Tenga mucho cuidado al jugar con permisos de archivos, use chmod y chown con mucho cuidado o puede terminar con un desastre.

bash: ~/.bashrc : Permission denied

Creo que cambió los permisos de todos los archivos en su directorio de inicio, por lo que también se modificó el permiso de bashrc.

Los permisos predeterminados del script ~ / .bashrc son

-rw-r--r-- 1 user1 user1  3353 2012-01-09 12:05 .bashrc

Para explicarlo, debe tener permisos de lectura y escritura en el archivo, otros usuarios del grupo de usuarios deben poder leerlo y todos los demás también pueden leerlo.

Así que ahora cambie los permisos del script bashrc usando chmod a 644

chmod 644 ~/.bashrc

si los comandos anteriores dan permiso denegado. luego

ejecutar chown primero como sudo

sudo chown user1:usergrp ~/.bashrc

reemplace user1 con su nombre de usuario y usergrp con su grupo de usuarios predeterminado.

Ahora otra vez

chmod 644 ~/.bashrc

ahora tendrá permisos para el script basrc, ahora intente iniciar sesión y verifique si obtiene otros errores :)

Rajesh Pantula
fuente
0

Los directorios necesitan un conjunto de x bits (para que el directorio se vea como bit de búsqueda) para abrir. Así que uso el árbol para poder obtener solo el conjunto de carpetas y evitar la pesadilla de tener todos los archivos configurados como ejecutables (la opción para el árbol es -d List directories only.):

sudo tree -faid /home/nroach44 | xargs -L1 -I{} sudo chmod 755  "{}"

¡¡¡Advertencia!!! deberías tener esto en consideración:

  • el uso de chmod o chown recursive en el /directorio raíz o en los directorios del sistema destruirá su sistema operativo (en realidad, cualquier cosa recursiva en el /directorio o directorios del sistema es peligrosa)

  • esta no es una buena práctica de seguridad para establecer permisos masivos como ese

Eduard Florinescu
fuente