GNU/Linux >> Tutoriels Linux >  >> Linux

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

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

Évidemment, le rendre inscriptible par le monde entier est une mauvaise chose, donc la deuxième option est préférable.

Les utilisateurs de Linux peuvent appartenir à plusieurs groupes. Dans ce cas, vous souhaitez créer un tout 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

Il ne reste plus qu'à définir les permissions 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 parcourir chaque sous-répertoire du répertoire cible et de modifier chaque fichier et répertoire qu'il trouve.

Vous pouvez également remplacer 770 par quelque chose comme 774 si vous voulez que d'autres puissent lire les fichiers, 775 si vous voulez que d'autres lisent et exécutent les fichiers, etc. Les changements d'affectation de groupe ne prendront effet que lorsque les utilisateurs se déconnecteront et se reconnecteront.

Si vous voulez aussi (vous voulez 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, alors voyez ici.


Le script suivant montre un exemple pour donner r (read) / w (write) / x (execute) autorisation pour le chemin de 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 `r/w/x` on the 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

Réponse avisée :

  • J'aime placer mon dossier partagé dans un endroit central. Pas dans le dossier personnel de quelqu'un d'autre, mais /srv/common ou encore (pour des chemins impitoyablement courts...) /repo ou similaire.
  • définissez un nouveau groupe (généralement pour tous les utilisateurs locaux, que vous souhaitez rejoindre. Cependant, certains utilisateurs techniques comme wwwuser ne le sont pas , sauf raison valable)
  • root est bon d'avoir en tant que membre, également d'avoir un propriétaire neutre de ce dossier partagé
  • setGid est très important, de sorte que les nouveaux fichiers deviennent des membres communs du groupe, donc frank:common , pas frank:frank
    sudo groupadd -f common
    usermod -aG common root
    usermod -aG common frank
    usermod -aG common mike

    # sort of hack for instant group refresh w/o logout
    # superuser.com/a/345051
    su - frank

    # sanity test1:
    cat etc/group | grep common
        common:x:1008:root,frank,mike
    # sanity test2:
    groups
        frank adm cdrom ... common
    sudo chown root:common /repo

    # (if you have shareable stuff setting somewhere else,
    #  copy it to here now)

    # no right to the world, the right rights to user and group
    chmod -R ug+rwXs,o-rwx $dest
    # why uppercase X ? → unix.stackexchange.com/a/416885

    # why s ? → superuser.com/a/277785
    # as there is no such thing as an uppercase S (directories only)
    # settings the s attribute on preexisting content would have to happen
    # like so:
    # find /repo -type d -exec chmod g+s {} \\\;

Linux
  1. Autorisations pour le dossier Apache Webroot sur le serveur de développement ?

  2. Serveur Ubuntu, plusieurs utilisateurs distants simultanés ?

  3. Comment lister tous les utilisateurs d'un groupe Linux ?

  4. Linux, pourquoi ne puis-je pas écrire même si j'ai des permissions de groupe ?

  5. Écrire dans le dossier tmp

Comment lister les utilisateurs sur Ubuntu 20.04

Correction de l'erreur "Impossible d'écrire dans le dossier d'application" dans Vuze BitTorrent Client

Gestion des comptes de groupe locaux sous Linux

Autorisations Linux - Comment trouver les autorisations d'un fichier

Comment donner l'autorisation Sudo aux utilisateurs sur Ubuntu Linux [Astuce du débutant]

S majuscule dans les autorisations d'un dossier ?