Question Accorder des autorisations d'écriture à plusieurs utilisateurs sur un dossier dans Ubuntu


Il existe un dossier appartenant à l'utilisateur tomcat6:

drwxr-xr-x 2 tomcat6 tomcat6 69632 2011-05-06 03:43 document

Je veux autoriser un autre utilisateur (ruser) à écrire des autorisations sur le dossier de documents. Les deux utilisateurs (tomcat6 et ruser) n'appartiennent pas au même groupe. J'ai essayé d'utiliser setfacl:

sudo setfacl -m  u:ruser:rwx document

mais cela me donne setfacl: document: Operation not supported Erreur. Merci de m'aider.


69
2018-05-09 08:44


origine




Réponses:


Il existe deux manières de procéder: définissez le répertoire sur "world" en écriture ou créez un nouveau groupe pour les deux utilisateurs et rendez le répertoire accessible en écriture dans ce groupe.

Evidemment, rendre le monde inscriptible est une mauvaise chose, donc la seconde option est préférable.

Les utilisateurs sous Linux peuvent appartenir à plusieurs groupes. Dans ce cas, vous voulez créer un nouveau groupe, appelons-le tomandruser:

sudo groupadd tomandruser

Maintenant que le groupe existe, ajoutez-y les deux utilisateurs:

sudo usermod -a -G tomandruser tomcat6
sudo usermod -a -G tomandruser ruser

Maintenant, tout ce qui reste est de définir les autorisations sur le répertoire:

sudo chgrp -R tomandruser /path/to/the/directory
sudo chmod -R 770 /path/to/the/directory

Désormais, seuls les membres du groupe tomandruser peuvent lire, écrire ou exécuter quoi que ce soit dans le répertoire. Notez l'argument -R des commandes chmod et chgrp: cela leur indique de se connecter à tous les sous-répertoires du répertoire cible et de modifier chaque fichier et répertoire trouvé.

Vous voudrez peut-être aussi changer 770 en quelque chose comme 774 si vous voulez que les autres puissent lire les fichiers, 775 Si vous souhaitez que d'autres personnes lisent et exécutent les fichiers, etc., les modifications d'affectation de groupe ne prendront effet que lorsque les utilisateurs se déconnecteront et se reconnecteront.

Si vous voulez aussi (probablement vous) que les nouveaux fichiers créés dans l’annuaire par l’un des utilisateurs soient automatiquement accessibles en écriture par d’autres membres du groupe, alors ici.


133
2018-05-09 10:06



Vous souhaiterez probablement également définir l'indicateur set-group-ID pour les répertoires, pour que les nouveaux fichiers et sous-répertoires soient automatiquement la propriété du groupe approprié: sudo find /path/to/the/directory -type d -exec chmod 2770 '{}' \; - Marcello Nuccio
J'éviterais d'utiliser chmod 770, 775 ou autre. Cela perturbe les autorisations de tout des dossiers. Au lieu d'utiliser quelque chose comme chmod -R g+w pour ajouter des autorisations d'écriture sans ranger tout le reste. - Christian Varga
Si un utilisateur y crée un nouveau fichier (par exemple, mysql by SELECT INTO OUTFILE), il définit les autorisations sur son groupe principal (mysql dans ce cas), et le fichier n'est de toute façon pas accessible par un autre utilisateur. Comment contourner cela? - Olexa
Que faire si vous souhaitez accorder aux utilisateurs un accès en écriture à un dossier sans modifier la propriété du dossier, par exemple vous ne voulez pas gâcher les autorisations d'Apache sur un dossier public_html? - codecowboy
Remarque: "Les modifications d'affectation de groupe ne prendront effet que lorsque les utilisateurs se déconnecteront et se reconnecteront." J'ai raté ça :) - Vladimir Vukanac


Un exemple de script montre un exemple à donner w (write)/ r (read) / x (execute) autorisation sur le chemin du dossier donné /path/to/the/directory pour USER1 et USER2. Si vous souhaitez donner uniquement un accès en écriture, veuillez remplacer rwx avec w.


#!/bin/bash

# Block others and people in the same group to do read/write/execute on give folder:    
sudo chmod 700 /path/to/the/directory 

#Give read/write/execute access to USER1 on give folder:
sudo setfacl -R -m user:USER1:rwx  /path/to/the/directory 

#Give read/write/execute access to USER2 on give folder:
sudo setfacl -R -m user:USER2:rwx  /path/to/the/directory 

0
2017-07-23 14:26