GNU/Linux >> Tutoriales Linux >  >> Linux

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

Lo encontré:Aplicar permisos predeterminados

Del artículo:

  1. Establecer el setgid bit, por lo que los archivos/carpetas bajo se crearán con el mismo grupo que

    chmod g+s <directory>
    
  2. Establecer las ACL predeterminadas para el grupo y otros

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

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

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

Usando el interruptor predeterminado (-d ) y el interruptor de modificación (-m ) solo modificará los permisos predeterminados pero dejará intactos los existentes:

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

Si desea cambiar toda la estructura de permisos de la carpeta, incluidas las existentes (tendrá que hacer una línea adicional y hacerla recursiva con -R ):

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

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 para marcar en los comentarios la sintaxis de la línea revocar todos los privilegios)


Agréguese a sí 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 seamos propietarios y miembros del grupo

sudo chown -R $USER:www-data html

Pon tu nombre de usuario en lugar de USUARIO

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

sudo chmod 750 html

Configure 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 que SELinux esté instalado, ignore el requisito de contexto de datos www para permitir permisos de escritura

sudo setsebool -P httpd_unified 1

lista de directorios para ver los nuevos permisos aplicados

ls -ld html

Devuelve esto

drwxrwsr-x+   3 html www-data

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

Referencia :Enlace al foro


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

  2. Linux:¿problemas de permisos para el directorio compartido en un servidor?

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

  4. ¿Cómo mover todos los archivos del directorio actual al directorio superior?

  5. ¿Cómo fuerzo permisos específicos para nuevos archivos/carpetas en el servidor de archivos de Linux?

Cómo copiar archivos y directorios en Linux

Cómo encontrar un archivo en Linux en todos los directorios recursivamente

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

comando de linux para vaciar todos los archivos de un directorio

¿Cómo configuro un nick predeterminado para nuevas conexiones irssi?

¿Cómo funcionan los permisos de archivo para el usuario root?