Para los archivos creados desde la cuenta de testuser en el directorio / var / www, necesito que tengan g + rwx como permisos y www-data como grupo.
¿Cómo puedo conseguir esto?
Estoy creando los archivos a través de SSH.
Para los archivos creados desde la cuenta de testuser en el directorio / var / www, necesito que tengan g + rwx como permisos y www-data como grupo.
¿Cómo puedo conseguir esto?
Estoy creando los archivos a través de SSH.
Respuestas:
Para configurar el grupo, proporcione /var/www
el bit setgid :
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 usuario.
Para establecer los permisos de grupo predeterminados, deberá usar ACL . Establezca 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 por defecto; en ext3 o ext4 puede obtener "Operación no admitida", en cuyo caso debe habilitarse manualmente:
Para un sistema de archivos montado actualmente: mount -o remount,acl /
Permanentemente: uno de los siguientes métodos:
en el nivel fstab: editar /etc/fstab
para tener acl
en el campo de opciones
a nivel de sistema de archivos: tune2fs -o acl /dev/diskname
chmod
también obtendría todos los archivos.
install
, de alguna manera logran evitar las ACL predeterminadas del directorio.
/var/www/html/projects
carpeta y cuando www-data crea un archivo, tiene rw-rw-r
permisos, pero cuando hago algo en la consola, crea un archivo con rw-r--r
. ¿Cómo puedo forzar que los nuevos archivos creados tengan siempre rw-rw-r
permisos?
umask
. Los permisos predeterminados por directorio se pueden cambiar usando setfacl
como en la publicación principal.
Esto podría haber atrapado a algunas personas con la respuesta 'gravity' 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
stor
/appe
? ¿Vía HTTPPUT
? ¿A través de una cuenta shell? Estos detalles son importantes, porque afectan en gran medida las posibles respuestas y deben estar en su pregunta.