¿Cómo especificar el grupo con chmod?

34

Se me solicitó agregar permisos de grupo-wrx a un directorio en la carpeta de inicio de otro usuario.

Creo que lo que debo hacer es ejecutarlo chmod 771 -R directorynameen el directorio principal. Lo que no puedo encontrar en ninguna parte de los tubos es cómo especificar a qué grupo quiero otorgar estos permisos. Personalmente, estoy en varios grupos, y en un grupo que no conozco como root.

En caso de que sea importante, el sistema ejecuta Redhat 5.4.

joe_young
fuente

Respuestas:

37

La chmod()llamada al sistema, y ​​por extensión el chmodprograma, no afecta el grupo de un archivo o directorio (u otro tipo de archivo: bloque especial, carácter especial, socket, ... el enlace simbólico es algo así como un caso especial). Por lo tanto, el grupo al que se otorga el permiso será el grupo al que pertenece el archivo o directorio.

Para agregar rwxpermisos de grupo , debe usar:

chmod -R g+rwx DirectoryName

Sin embargo, esto agrega los permisos a cada archivo, así como a cada directorio, y no todos los archivos deben ser ejecutables. Personalmente, sería muy infeliz si alguien proporcionara permiso de escritura grupal en todos (o cualquiera) de mis directorios, pero esa es otra historia.

Para afectar solo a los directorios, use finden su lugar:

find DirectoryName -type d -exec chmod g+rwx {} +

(La +notación es POSIX 2008; no todos los sistemas Unix lo admiten, aunque Linux sí).

Jonathan Leffler
fuente
1
Si usa + X (X mayúscula) solo agregará permiso de ejecución (o 'búsqueda') si el archivo es un directorio o ya tenía permiso de ejecución para algún usuario. linux.die.net/man/1/chmod
Dave
@Dave: chmod +Xal parecer también es compatible con BSD (Mac OS X). El escrutinio cuidadoso de POSIX chmodindica que +Xes una característica POSIX después de todo: el símbolo permanente X representará la parte de ejecución / búsqueda de los bits de modo de archivo si el archivo es un directorio o si los bits de modo de archivo actuales (no modificados) tienen al menos uno de el conjunto de bits de ejecución (S_IXUSR, S_IXGRP o S_IXOTH). Se ignorará si el archivo no es un directorio y ninguno de los bits de ejecución se establece en los bits del modo de archivo actual. Tenga en cuenta la justificación a continuación.
Jonathan Leffler
12

Cada archivo en un sistema de archivos ext tiene:

  1. Un usuario propietario
  2. Un grupo de propietarios
  3. Permisos para este usuario, este grupo y todos los demás.

Si está configurando permisos de grupo rwx en un archivo, solo el grupo propietario de ese archivo puede leerlo / escribirlo / ejecutarlo. Sin embargo, puede cambiar de usuario y propietario con:

chown username file1 file2 ...
chown -R username somedir
chgrp groupname file1 file2 ....
chgrp -R groupname somedir
chown username:groupname file1 file2 ...

Existen diferentes implementaciones para los privilegios del sistema de archivos extendido, es decir, ACL (listas de control de acceso) en Mac OS X, pero como no soy un experto en Linux, probablemente deberías preguntar en Server Fault por eso.

Marian Theisen
fuente
"así que si está configurando permisos de grupo rwx en un archivo, solo el grupo propietario de ese archivo puede leerlo / escribirlo / ejecutarlo". las reglas de usuario propietario tienen prioridad, si usted no es el usuario propietario ni en el grupo propietario, se aplican las reglas para los demás.