GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo fuerzo el grupo y los permisos para los archivos creados dentro de un directorio específico?

Para configurar el grupo, da /var/www el setgid poco:

chgrp www-data /var/www
chmod g+s /var/www

Para ajustar también subdirectorios:find /var/www -type d -exec chmod g+s {} +

Esto hará que todos los archivos recién creados hereden el grupo del directorio principal, en lugar del del usuario.

Para establecer los permisos de grupo predeterminados, deberá usar ACL . Establecer una ACL "predeterminada":

setfacl -m "default:group::rwx" /var/www

Para ajustar también subdirectorios:find /var/www -type d -exec setfacl -m d:g::rwx {} +

Nota:El sistema de archivos debe tener habilitado el soporte de ACL. A veces está activado de forma predeterminada; en ext3 o ext4 es posible que obtenga "Operación no compatible", en cuyo caso debe habilitarse manualmente:

  • Para un sistema de archivos montado actualmente:mount -o remount,acl /

  • Permanentemente:uno de los siguientes métodos:

    • a nivel de fstab:editar /etc/fstab tener acl en el campo de opciones

    • a nivel de sistema de archivos:tune2fs -o acl /dev/diskname


Esto podría haber dejado a algunas personas atrapadas con la respuesta 'grawity' en setgid, si el grupo de la carpeta es diferente al suyo, es posible que deba ejecutar chmod como root, pero no obtendrá ningún error que indique que necesita hacer esto.

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                    #no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo       #and the group is still wrong


$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir  #the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo #and group is set

Linux
  1. Linux:¿cómo establecer permisos de archivo predeterminados para todas las carpetas/archivos en un directorio?

  2. ¿Cómo usar Inotifywait para ver un directorio para la creación de archivos de una extensión específica?

  3. Más información sobre cómo cambiar los permisos de archivos y carpetas

  4. ¿Cómo cambiar los permisos de una carpeta y sus subcarpetas/archivos en un solo paso?

  5. ¿Cómo diferencia un directorio solo para archivos de un tipo específico?

Cómo cambiar los permisos de archivos y directorios

Cómo copiar archivos y directorios en Linux

Cómo tar tipos de archivos específicos (extensiones) en un directorio

Cómo contar la cantidad de archivos y subdirectorios dentro de un directorio

Asegurarse de que los archivos nuevos en un directorio pertenecen al grupo

¿Cómo configurar los permisos de Linux para la carpeta WWW?