J'ai un dossier dont l'autorisation est définie sur 777, mais lorsque j'ajoute des fichiers ou des dossiers, décompressez-les dans ce dossier. Les fichiers extraits ou l'autorisation de dossier ne changent jamais. L'autorisation du dossier de destination est 777 et je veux que ce que je vais ajouter dans ce dossier obtienne automatiquement l'autorisation 777.
Lorsque j'ajoute des fichiers ou des dossiers en extrayant .zip dans ce dossier, l'autorisation des dossiers/fichiers extraits ne change pas automatiquement. Je dois toujours utiliser chmod pour ajouter un nouveau fichier/dossier !
Réponse acceptée :
Ce que vous voulez s'appelle ACL – Listes de contrôle d'accès.
La liste de contrôle d'accès (ACL) fournit un mécanisme d'autorisation
supplémentaire et plus flexible pour les systèmes de fichiers. Il est conçu pour aider avec
les autorisations de fichiers UNIX. ACL vous permet d'accorder des autorisations à n'importe quel utilisateur
ou groupe sur n'importe quelle ressource de disque.
acl
Le package doit déjà être installé, pour le vérifier exécutez :dpkg -s acl
.
Pour utiliser les ACL, vous devez l'activer pour votre système de fichiers. Mais il peut être déjà activé . Pour le vérifier, utilisez tune2fs -l
. Remplacez /dev/sda6
pour votre système :
$ tune2fs -l /dev/sda6 | grep "Default mount options:"
Default mount options: user_xattr acl
Si vous voyez acl mot - il est déjà activé pour le périphérique /dev/sda6
.
Si vous ne voyez pas acl mot - exécutez tune2fs -o acl /dev/sda6
pour l'activer.
Pour modifier l'ACL, utilisez setfacl commande. Pour ajouter des autorisations, utilisez setfacl -m .
Pour définir l'autorisation de l'utilisateur :
$ setfacl -m "u:username:rwx" /path/to/folder
Cela définira rwx
ACL, pour l'utilisateur username
vers /chemin/vers/dossier. Cela signifie que tous les fichiers créés dans ce dossier auront rwx
autorisation pour username
.
Pour définir l'autorisation d'un groupe :
$ setfacl -m "g:groupname:rwx" /path/to/folder
Cela définira rwx
ACL, pour le groupe groupname
vers /chemin/vers/dossier. Cela signifie que tous les fichiers créés dans ce dossier auront rwx
autorisation pour le groupe groupname
.
Pour définir une autorisation pour d'autres :
$ setfacl -m "o:rwx" /path/to/folder
Cela définira rwx
ACL, pour autre vers /chemin/vers/dossier. Cela signifie que tous les fichiers créés dans ce dossier auront rwx
autorisation pour les autres.
Pour vérifier l'autorisation :
$ getfacl /path/to/folder
Pour combiner acl
$ setfacl -m u:username:rwx,g:groupname:rwx,o:rwx /path/to/folder
ACL par défaut
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.
Donc, si vous définissez l'ACL par défaut, ce serait préféré LCA. Cela signifie que si l'ACL est définie pour user
ou group
, le nouveau fichier créé hériterait de par défaut acl de toute façon . Soyez prudent avec l'ACL par défaut.
Pour définir l'acl par défaut, utilisez -d
clé,
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
ou utilisez default
mot
$ setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /path/to/folder
Soyez prudent avec la définition de l'ACL par défaut. Par exemple, si défini comme ceci :
$ setfacl -d -m o:--x /path/to/folder
et récupérez maintenant cette 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
l'ACL par défaut pour le groupe et l'utilisateur sera rwx
automatiquement !
Supprimer la LCA
$ setfacl -b /path/to/folder
Cela supprimera toutes les ACL du dossier
Enfin
Si vous n'êtes qu'un utilisateur du système, je vous recommande d'utiliser l'ACL par défaut.
$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder
Cela fera ce que vous voulez pour /path/to/folder
Sources
archlinux – https://wiki.archlinux.org/index.php/Access_Control_Lists
help.ubuntu – https://help.ubuntu.com/community/FilePermissionsACLs