Tengo una carpeta cuyo permiso está establecido en 777 pero cuando agrego cualquier archivo o carpeta que descomprimo en esa carpeta. Los archivos extraídos o el permiso de la carpeta nunca cambian. El permiso de la carpeta de destino es 777 y quiero que lo que agregue en esa carpeta obtenga automáticamente el permiso 777.
Cuando agrego cualquier archivo o carpeta extrayendo .zip en esa carpeta, el permiso de carpeta/archivos extraídos no cambiará automáticamente. ¡Siempre tengo que usar chmod para agregar archivos/carpetas recientemente!
Respuesta aceptada:
Lo que quieres se llama ACL – Listas de control de acceso.
La lista de control de acceso (ACL) proporciona un mecanismo de permisos
adicional y más flexible para los sistemas de archivos. Está diseñado para asistir con
permisos de archivo UNIX. ACL le permite otorgar permisos para cualquier usuario
o grupo a cualquier recurso de disco.
acl
el paquete ya debe estar instalado, para verificarlo ejecute:dpkg -s acl
.
Para usar ACL, debe habilitarlo para su sistema de archivos. Pero puede estar ya habilitado . Para verificarlo use tune2fs -l
. Sustituir /dev/sda6
para su sistema:
$ tune2fs -l /dev/sda6 | grep "Default mount options:"
Default mount options: user_xattr acl
Si ve acl palabra:ya está habilitado para el dispositivo /dev/sda6
.
Si no ve acl palabra:ejecute tune2fs -o acl /dev/sda6
para habilitarlo.
Para modificar ACL use setfacl dominio. Para agregar permisos, use setfacl -m .
Para establecer permisos para el usuario:
$ setfacl -m "u:username:rwx" /path/to/folder
Esto configurará rwx
ACL, para el usuario username
a /ruta/a/carpeta. Esto significa que todos los archivos creados en esta carpeta tendrán rwx
permiso para username
.
Para establecer permisos para el grupo:
$ setfacl -m "g:groupname:rwx" /path/to/folder
Esto establecerá rwx
ACL, para el grupo groupname
a /ruta/a/carpeta. Esto significa que todos los archivos creados en esta carpeta tendrán rwx
permiso para el grupo groupname
.
Para establecer permisos para otros:
$ setfacl -m "o:rwx" /path/to/folder
Esto establecerá rwx
ACL, para otro a /ruta/a/carpeta. Esto significa que todos los archivos creados en esta carpeta tendrán rwx
permiso para otros.
Para verificar el permiso:
$ getfacl /path/to/folder
Para combinar acl
$ setfacl -m u:username:rwx,g:groupname:rwx,o:rwx /path/to/folder
LCA predeterminada
The new object inherits the default ACL of the containing directory as its
access ACL.
If no default ACL is associated with a directory, the mode parameter to the func‐
tions creating file objects and the file creation mask (see umask(2)) are used to
determine the ACL of the new object:
The new object is assigned an access ACL containing entries of tag types
ACL_USER_OBJ, ACL_GROUP_OBJ, and ACL_OTHER. The permissions of these entries
are set to the permissions specified by the file creation mask.
Entonces, si establece una ACL predeterminada, sería preferida LCA. Eso significa que si establece ACL para user
o group
, el nuevo archivo creado heredaría predeterminado acl de todos modos . Tenga cuidado con la ACL predeterminada.
Para establecer el uso predeterminado de ACL -d
clave,
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
o use default
palabra
$ setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /path/to/folder
Tenga cuidado con la configuración de ACL predeterminada. Por ejemplo, si se establece así:
$ setfacl -d -m o:--x /path/to/folder
y ahora busca esta ACL
$ getfacl /path/to/folder
# file: path/to/folder
# owner: c0rp
# group: c0rp
user::rwx
group::rwx
other::--x
default:user::rwx
default:group::rwx
default:other::--x
la LCA predeterminada para el grupo y el usuario será rwx
automáticamente!
Eliminar LCA
$ setfacl -b /path/to/folder
Esto eliminará todas las ACL de la carpeta
Finalmente
Si solo es un usuario en el sistema, le recomiendo usar la ACL predeterminada.
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
Esto hará lo que quieras para /ruta/a/carpeta
Fuentes
archlinux – https://wiki.archlinux.org/index.php/Access_Control_Lists
ayuda.ubuntu – https://help.ubuntu.com/community/FilePermissionsACLs