Para archivos creados a partir delusuario de pruebacuenta en el directorio /var/www, necesito que tengang+rwxcomo permisos, ywww-datoscomo grupo.
¿Cómo puedo conseguir esto?
Estoy creando los archivos a través de SSH.
Respuesta1
Para configurar el grupo, dé /var/www
elsetgidpoco:
chgrp www-data /var/www
chmod g+s /var/www
Para ajustar también los 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 configurar los permisos de grupo predeterminados, deberá usarACL. Establezca una ACL "predeterminada":
setfacl -m "default:group::rwx" /var/www
Para ajustar también los subdirectorios:find /var/www -type d -exec setfacl -m d:g::rwx {} +
Nota: El sistema de archivos debe tener habilitada la compatibilidad con ACL. A veces está activado de forma predeterminada; enext3oext4es posible que aparezca "Operación no compatible", en cuyo caso debe habilitarse manualmente:
Para un sistema de archivos actualmente montado:
mount -o remount,acl /
Permanentemente -unode los métodos siguientes:
a nivel de fstab: editar
/etc/fstab
para teneracl
en el campo de opcionesa nivel del sistema de archivos:
tune2fs -o acl /dev/diskname
Respuesta2
Esto podría haber dejado a algunas personas atascadas con la respuesta 'grawity' en setgid, si el grupo de carpetas es diferente al suyo, es posible que necesite ejecutar chmod como root, pero no recibirá 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
Respuesta3
El grupo de archivos creados por un usuario es el grupo de ese usuario (en /etc/group). Los permisos están controlados por el parámetro UMASK. mira esto