web-dev-qa-db-fra.com

Les autorisations de groupe Linux ne sont pas correctement appliquées.

Je gère Ubuntu 10.04 Server et j'ai des expériences très intuitives avec les utilisateurs/groupes. Par exemple:

Sudo touch test_file                    # create empty file

Sudo groupadd test                      # create 'test' group

Sudo chown root:test test_file          # change group of file to 'test'

Sudo chmod g+rwx test_file              # give write permissions to group

Sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

La dernière ligne produit une erreur d'autorisations.

Je me suis assuré que mon utilisateur fait partie du groupe "Test" (groups {my-user} confirme cela). Le groupe de test_file est également définitivement défini sur "Test" et les autorisations de groupe sont définies.

Pourquoi mon utilisateur ne peut-il pas écrire dans le fichier de test de fichier?

18
Gordon

Lors de l'ajout d'un utilisateur à un nouveau groupe, cela ne sera appliqué dans aucun processus en cours d'exécution, que seuls les nouveaux. Vous devez vous déconnecter puis vous reconnecter.

29
Daenyth

La déconnexion et le redémarrage des méthodes de serveur ne fonctionnaient pas pour moi.

Cette méthode fonctionne cependant pour moi: (Référence à cela Réponse )

chmod g+rwxs <parent folder>
5
checksum

Redémarrez l'ordinateur pour vous assurer qu'aucun processus bloqué empêche votre utilisateur et vos groupes d'être appliqués correctement pendant la déconnexion et la connexion.

Ces étapes doivent donner votre utilisateur de groupe test l'autorisation d'écriture sur test_file

Sudo touch test_file 
Sudo groupadd test
Sudo chown root:test test_file
Sudo chmod g+rwx test_file
Sudo usermod -a -G test {my-user}

Redémarrez l'ordinateur ou faites une déconnexion du système d'exploitation de votre utilisateur. Un redémarrage du terminal ne suffit pas.

touch test_file

L'utilisateur peut écrire dans le fichier car il fait partie du groupe "Test" et le groupe a la permission RWX.

0
Eric Leschinski

Vous pouvez utiliser la commande newgrp pour modifier l'ID de groupe actuel de l'utilisateur. De man newgrp :

La commande newgp est utilisée pour modifier l'ID de groupe actuel lors d'une session de connexion. Si la facultative - Le drapeau est donné, l'environnement de l'utilisateur sera réinitialisé comme si l'utilisateur s'était connecté, sinon l'environnement actuel, y compris le répertoire de travail actuel, reste inchangé.