it-swarm-es.tech

¿Cómo establecer permisos de archivo predeterminados para todas las carpetas / archivos en un directorio?

Quiero establecer una carpeta de modo que todo lo creado dentro de él (directorios, archivos) herede los permisos y el grupo predeterminados.

Llamemos al grupo "medios". Y también, las carpetas/archivos creados dentro del directorio deberían tener g + rw automáticamente.

274
Chris

Lo encontré: Aplicando permisos predeterminados

Del artículo:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

A continuación podemos verificar:

getfacl /<directory>

Salida:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
288
Chris

Esta es una adición a la respuesta de Chris, se basa en mi experiencia en mi plataforma Arch Linux.

El uso del modificador predeterminado (-d) y el modificador de modificación (-m) solo modificarán los permisos predeterminados, pero dejarán intactos los existentes:

setfacl -d -m g::rwx /<directory>

Si desea cambiar la estructura de permisos completa de la carpeta, incluidas las existentes (deberá hacer una línea adicional y hacerla recursiva -R:

setfacl -R -m g::rwx /<directory>

p.ej.

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( CRÉDITO a markdwite en comentarios para la sintaxis de la línea revocar todos los privilegios)

29
thebunnyrules

Agregue usted mismo/usuario registrado al grupo www-data, para que podamos trabajar con archivos creados por el servidor www-data

Sudo usermod -a -G www-data $USER

Necesita reiniciar/volver a iniciar sesión para que el grupo recién agregado surta efecto

cd /var/www

Agregue www-data como miembro del grupo de la carpeta html, y su usuario como propietario, para que sea nuestro propietario y miembro del grupo

Sudo chown -R $USER:www-data html

Pon tu nombre de usuario en lugar de USUARIO

Establezca los permisos de lectura, escritura y ejecución según sea necesario, (ugo) u = usuario, g = grupo, o = otros

Sudo chmod 750 html

Establezca el GID de html, ahora, los archivos recién creados en html heredarán los permisos de propiedad:

Sudo chmod g+s html

Esto crea las reglas predeterminadas para archivos/directorios recién creados dentro del directorio html y subdirectorios.

Sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Haga SELinux si está instalado, ignore el requisito de contexto de www-data para que permita permisos de escritura

Sudo setsebool -P httpd_unified 1

directorio de la lista para ver los nuevos permisos aplicados

ls -ld html

Devuelve esto

drwxrwsr-x+   3 html www-data

El signo + significa que ACL, Lista de control de acceso, está establecida en el directorio.

¡Referencia: Enlace al foro

1
Bsienn