web-dev-qa-db-fra.com

Comment donner seulement au propriétaire d'un dossier un accès en écriture / suppression?

Comment créer un dossier qui:

  • tout le monde a un accès en lecture au contenu du dossier
  • seul le propriétaire a un accès en écriture/suppression au contenu

Créez un dossier et exécutez chmod (mode de modification du fichier) pour modifier les autorisations.

mkdir folder
chmod 755 folder

en fait c'est la valeur par défaut.

Modification des autorisations du contenu d'un dossier déjà existant:

# Give write access to owner
chmod -R u+w folder
# Revoke write access of group and others
chmod -R go-w folder
# Give read access to everyone
chmod -R a+r folder

Ou ensemble dans une commande (thx @chrylis)

chmod -R u=rwx,g=rx,o=rx folder
6
pLumo

Les bits de permission (en octal) dont vous avez besoin:

0705

Ou si vous souhaitez également accorder une autorisation de lecture/accès au groupe (cela a du sens si vous donnez la lecture/exécution au monde entier):

0755

Le 0 situé devant indique l'absence de tout SUID, SGID ou bit collant. Vous pouvez laisser ça si vous voulez.

Sous forme de lettre descriptive:

rwxr-xr-x
4
heemayl

Donnez à l'utilisateur propriétaire toutes les autorisations et tout le monde ne fait que lire et exécuter, et supprimez les autorisations d'écriture pour tout ce qu'il contient:

Sudo setfacl -Rm u::rwX,g::rX,o::rX /path/to/directory
Sudo setfacl -Rdm u::rwX,g::rX,o::rX /path/to/directory

Le premier définit les autorisations pour les éléments existants et le second, les autorisations par défaut pour tout ce qui est créé dans le répertoire. rwX accorde toutes les autorisations (X accorde l'exécution si c'est un répertoire ou s'il est déjà exécutable).

4
muru