Permiso denegado pero los permisos de grupo se ven bien en redhat

11

Tengo un usuario ftpadmin:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(git)

El grupo importante a tener en cuenta es "git"

Luego tengo mi repositorio git:

ls -al
drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Por lo tanto, ftpadmin es miembro de git, y git ha otorgado todos los permisos a las personas del grupo. ¿Por qué veo esto cuando inicio sesión como ftpadmin:

-bash-3.2$ ls -al /home/git/
ls: /home/git/fsg: Permission denied
...

Parece que debería tener permiso ...

Actualizar Los permisos en / home / git son

drwxrw-rw-   6 git      git          4096 Apr 26 09:20 git

todavía se ve bien ...

Los nuevos permisos de actualización en / home / git son:

drwxrwxrw-   6 git      git          4096 Apr 26 09:20 git

Los permisos en / home / git / fsg son:

drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Sin embargo, sigo teniendo

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied
Tony
fuente
1
¿Cuáles son los permisos /home/git?
Zoredache
drwxrw-rw- 6 git git 4096 26 de abril 09:20 git
Tony
debería ser drwxrwxr-xsi desea que sea de solo lectura para los miembros que no pertenecen al grupo pero que los miembros del grupo pueden cambiar; debería ser drwxrwx---si solo quieres que los miembros del grupo estén solos en él.
Avery Payne
44
Necesita el bit de grupo "x" establecido en el directorio para permitir búsquedas grupales . Los permisos "rw-" permiten abrir un archivo dado su nombre (r) o crear un archivo (w), pero no enumerar o buscar los archivos (x).
mpez0
no funcionó ver mi última actualización
Tony

Respuestas:

9

Quería darle a mpez0 un +1 específicamente, por su respuesta "Necesita el bit del grupo" x "establecido en el directorio para permitir búsquedas grupales. Los permisos" rw- "permiten abrir un archivo dado su nombre (r) o crear un archivo (w), pero no enumera ni busca los archivos (x) ".

Es muy fácil de olvidar, y su solución está enterrada en el medio. Este es definitivamente un problema para los nuevos usuarios de Linux con respecto a los permisos de archivo / directorio para usuarios y grupos.

Todo lo que Avery dijo estaba en lo cierto, nuevamente deseo que yo también pudiera darte un +1.

La figura otro ejemplo más detallado podría ayudar a los nuevos usuarios de Linux ( no buscan ningún crédito, solo proporcionan otro ejemplo para mayor claridad ). En mi propia PC, quería crear un usuario adicional para un proyecto de desarrollo específico. Estaba probando algunos problemas de SSH, SFTP entre mi máquina y un servidor compartido en la web. Obtuve el mismo error de "Permiso denegado" después de configurar todo ... y sí, parecía correcto, excepto por el problema de búsqueda basado en los permisos para otros que señaló mpez0.

Nota: Para los nuevos usuarios de Linux, los permisos son usuario, grupo, otro o rwx, rwx, rwx respectivamente y se verían así

drwxr-xr--   

user has read + write + execute, rwx 
group has only read and execute, r-x
other has only read acces r--

Para 'otro', se nos recuerda que NO es suficiente encontrar / buscar el directorio, por lo tanto, el mensaje de error.

Esto es lo que hice (encontré el mensaje de error en el paso 6)

1) creó un usuario, hoiuser (para ver la información del usuario, puede usar el cmd de dedo, "hoiuser de dedo" o leer el archivo 'cat / etc / passwd')

2) creó un grupo, hoidevs (usuario agregado "hoiuser" al grupo)

root@zareason-breeze:/etc# cat group | grep hoidevs 
hoidevs:x:1010:userz,hoiuser 

Recuerde que debe cerrar sesión e iniciar sesión nuevamente para que los nuevos permisos de "grupo" se asocien con la ID de la cuenta.

3) chgrp hoidevs para el directorio / home / userz / data / Sites / hoi y creó un lugar para los archivos

hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

4) Abrí una ventana de terminal, el usuario userz estaba activo

5) su - hoiuser (cambiado a usuario hoiuser)

6) Intento de cd / home / userz / data / Sites

hoiuser@zareason-breeze:/home/userz/data$ cd Sites
-su: cd: Sites: Permission denied    (voila, the problem)


userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr--  11 userz userz  4096 2012-02-24 16:20 ./
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/

7) Cambió los permisos para Sitios

userz@zareason-breeze:~/data/Sites$ chmod 755 .
userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr-x  11 userz userz  4096 2012-02-24 16:20 ./

Y voila problema solucionado ... aquí está la prueba

hoiuser@zareason-breeze:/home/userz/data$ id
uid=1009(hoiuser) gid=1009(hoiuser) groups=1009(hoiuser),1010(hoidevs)

hoiuser@zareason-breeze:/home/userz/data$ cd Sites        (<- yea no error message)
hoiuser@zareason-breeze:/home/userz/data/Sites$ cd hoi
hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x 11 userz userz 4096 2012-02-24 16:20 ../
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Incluso nosotros, los usuarios experimentados de Linux / Unix, necesitamos un recordatorio de vez en cuando.

Como se señaló, no es suficiente otorgar los permisos correctos al directorio donde están los archivos, también debe asegurarse de que todos los directorios que conducen a ese directorio tengan los permisos correctos, especialmente la capacidad de "otros" para "buscar" y buscar el directorio y los archivos. Difícilmente intuitivo cuando x significa ejecutar, correcto.

Mi estructura de subdirectorio era: / home / userz / data / Sites / hoi / html /

Comenzando desde casa

userz@zareason-breeze:~$ pwd
/home

Esta era mi estructura de directorio ANTES del chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr--  11 userz userz     4096 2012-02-24 16:20 Sites/    (<-- Do you see it, other is r--)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Esta fue mi estructura de directorio DESPUÉS del chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr-x  11 userz userz     4096 2012-02-24 16:20 Sites/      (<-- Fixed by the chmod > 755 ., now r-x)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Tenga en cuenta que el único cambio fueron los permisos de rx para 'otros' para el directorio 'Sitios'. Espero que esto ayude a otros, fue un buen repaso para mí.

CBPHP
fuente
3
Estaba teniendo un problema similar en FreeBSD y OpenBSD. La clave para mí fue esta parte: recuerde que debe cerrar sesión e iniciar sesión nuevamente para que los nuevos permisos de "grupo" se asocien con la ID de la cuenta. Efectivamente, la documentación de FreeBSD dice: `-G lista de grupos
iboisver
6

Debe tener permisos en el directorio que contiene el archivo para acceder al archivo. ¿Cuáles son los permisos en / home / git? (sí, Zoredache, te di un +1 por señalarlo)


Seguimiento: necesita el bit de ejecución (x) establecido para el grupo para que ese grupo ingrese al directorio. Piense en ello como un análogo aproximado de la configuración del "Directorio transversal" de Windows. Sin ella, se negará el acceso al grupo. Si estás desesperado, puedes hacer:

chmod g+x /home/git
chmod g+x /home/git/fsg

Pruebe lo siguiente y publique el mensaje de cada uno:

cd /home
cd /home/git
cd /home/git/fsg

Cada uno de ellos debe ser accesible por ftpadmin. Si alguno de ellos no lo es , entonces te impedirá entrar /home/git/fsg.

Avery Payne
fuente
drwxrw-rw- 6 git git 4096 abr 26 09:20 git
Tony
tiene sentido, todavía recibo un permiso denegado en / home / git / fsg que es drwxrwxr-x 7 git git 4096 20 de abril 14:17 fsg
Tony
y en ese último "permiso denegado", ¿está establecido el bit de ejecución de grupo? No importará si tiene permiso para el niño si el padre no tiene permiso también.
Avery Payne
Mira mi última actualización. Puse los permisos allí y se estableció el bit de exec grupal
Tony
Veo que tienes resultados para /home/gity /home/git/fsg¿ para qué fueron los resultados /home?
Avery Payne
4

Después de cambiar los grupos de un usuario X a través del acceso raíz, debe cerrar sesión e iniciar sesión nuevamente con ese usuario X; de lo contrario, no se tendrán en cuenta los grupos nuevos.

Marco Marsala
fuente
3

Intente iniciar sesión nuevamente o ejecutar su - ftpadminpara iniciar sesión dentro del shell actual. Dado que los grupos se configuran cuando inicia sesión, puede ser que haya agregado algo así a un grupo, pero la configuración anterior del grupo todavía se está utilizando.

erjiang
fuente