Grouper dans les autorisations de fichier de groupe

13

J'ai essayé de trouver cela ici, mais je ne peux pas m'excuser si c'est un doublon.

Disons que j'ai 2 groupes et un utilisateur: groupe1, groupe2, utilisateur1 avec la structure suivante: groupe1 est membre du groupe 2, utilisateur1 est membre du groupe1

Maintenant, disons que j'ai les fichiers suivants avec les autorisations appropriées

file1 root:group1 660
file2 root:group2 660

Maintenant, lorsque je me connecte à user1, je peux modifier le fichier1, mais pas le fichier2. À moins d'ajouter l'utilisateur1 au groupe2, y a-t-il un moyen de le faire? ou n'y a-t-il aucun moyen?

J'utilise Ubuntu btw.

Aram Papazian
la source
Si je ne me trompe pas, les autorisations classiques basées sur les groupes sous Linux ne vous permettent pas de placer un groupe dans un autre groupe. Avez-vous donc installé quelque chose qui active cette fonctionnalité?
Gunther Struyf
Un utilisateur peut être membre de plusieurs groupes. Si vous ajoutez User1 au groupe2, il est en mesure de modifier File2. La commande de votre choix serait useradd.
user1146332
@GuntherStruyf Je n'ai rien changé ... D'après ce que j'ai pu voir, Ubuntu le permet par défaut ...
Aram Papazian
@ user1146332 Le tout est de ne pas ajouter user1 au groupe2. Si c'est le seul moyen, je peux le faire, mais théoriquement, je préférerais une structure d'imbrication de groupe ...
Aram Papazian

Réponses:

15

Il n’existe pas de groupe faisant partie d’un groupe. Un groupe, par définition, a un ensemble de membres utilisateurs. Je n'ai jamais entendu parler d'une fonctionnalité qui vous permettrait de spécifier des «sous-groupes» où les membres des sous-groupes se voient automatiquement accorder l'adhésion au supergroupe lors de la connexion. Si /etc/grouplistes group1comme membre de group2, il désigne l'utilisateur appelé group1(si un tel utilisateur existe, ce qui est possible: les noms d'utilisateurs et les noms de groupes vivent dans des espaces de noms différents).

Si vous souhaitez que l'utilisateur1 ait accès au fichier2, vous avez plusieurs solutions:

  • Rendre file2accessible au monde (vous ne voulez probablement pas cela)
  • Faites de l'utilisateur1 le propriétaire du fichier2: chown user1 file2
  • Ajoutez l'utilisateur1 au groupe2: adduser user1 group2
  • Ajoutez une ACL file2qui accorde l'accès à l'utilisateur1 ou au groupe`:

    setfacl -m user:user1:rw file2
    setfacl -m group:group1:rw file2
    

    Voir Rendre tous les nouveaux fichiers dans un répertoire accessibles à un groupe sur l'activation des ACL.

Gilles 'SO- arrête d'être méchant'
la source
7
Oui, unix / linux ne prend pas en charge les groupes imbriqués. Ce serait utile si c'était le cas, mais ce n'est pas le cas. Windows le fait et Active Directory le fait. LDAP le fait aussi, donc cela devrait être possible si les données de compte et de groupe sont dans LDAP plutôt que dans / etc / passwd et / etc / group ... mais c'est exagéré quand il existe des solutions simples comme les ACL (ou ajoutez simplement l'utilisateur aux deux groupes)
cas