web-dev-qa-db-fra.com

Donner 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 du document. 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 l'erreur setfacl: document: Operation not supported. Aidez-moi gentiment.

77
TheVillageIdiot

Il existe deux façons de procéder: définissez le répertoire sur "monde" en écriture ou créez un nouveau groupe pour les deux utilisateurs et créez le répertoire en écriture pour ce groupe.

De toute évidence, rendre le monde accessible en écriture est une mauvaise chose, alors la deuxième option est préférable.

Les utilisateurs de 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 à faire 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 dans les commandes chmod et chgrp: cela leur dit de rentrer dans chaque sous-répertoire du répertoire cible et de modifier tous les fichiers et répertoires qu'il trouve.

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 voulez que les autres lisent et exécutent les fichiers, etc. Les modifications d'attribution de groupe ne prendront effet que si les utilisateurs se déconnectent. et retour dans.

Si vous souhaitez également (vous le souhaitez probablement) que les nouveaux fichiers créés dans le répertoire par l'un des utilisateurs soient automatiquement inscriptibles par les autres membres du groupe, puis consultez ici .

138
Andrew Lambert

L'exemple de script montre un exemple pour donner l'autorisation w (write)/ r (read) / x (execute) au chemin de dossier donné /path/to/the/directory pour USER1 et USER2. Si vous voulez donner uniquement un accès en écriture, veuillez remplacer rwx par 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 
2
alper