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

Je veux créer un fichier dans un répertoire appartenant au groupe de membres dont je suis membre. Pourquoi je ne peux pas faire ça?

bmccann@bmccann-htpc:~$ ls -l /usr/local/lib/R/ total 4 drwxrwsr-x 2 root staff 4096 2010-07-31 16:21 site-library bmccann@bmccann-htpc:~$ id -nG bmccann bmccann adm dialout cdrom plugdev staff lpadmin admin sambashare bmccann@bmccann-htpc:~$ touch /usr/local/lib/R/site-library/tmp touch: cannot touch `/usr/local/lib/R/site-library/tmp': Permission denied 

Vous êtes-vous déconnecté et reconnecté après avoir modifié le groupe? Voir:
Réponse de super utilisateur impliquant l’échec des permissions tactiles

Pourquoi l’utilisateur Linux ne peut-il pas éditer des fichiers dans un groupe dont il fait partie?

J’utilise Ubuntu 12.04 et j’ai le même problème lorsqu’un utilisateur ne peut pas écrire sur un fichier auquel il est autorisé à accéder par groupe. Par exemple:

 whoami //I am user el el touch /foobar/test_file //make a new file sudo chown root:www-data /foobar/test_file //User=root group=www-data sudo chmod 474 /foobar/test_file //owner and others get only read, //group gets rwx sudo groupadd www-data //create group called www-data groups //take a look at the groups and see www-data //www-data exists. groups el //see that el is part of www-data el : www-data 

Redémarrez le terminal maintenant pour vous assurer que les utilisateurs et les groupes ont pris effet. Connectez-vous en tant que el.

 vi /foobar/test_file //try to edit the file. 

Produit l’avertissement:

 Warning: W10: Warning: Changing a readonly file" 

Quelle? J’ai tout fait correctement, pourquoi ça ne marche pas?

Répondre:

Effectuez un redémarrage complet de l’ordinateur. Arrêter le terminal ne suffit pas pour résoudre ces problèmes.

Je pense que ce qui se passe, c’est qu’apache2 utilise également le groupe de données www, la tâche empêchant ainsi les utilisateurs et les groupes d’être correctement appliqués. Non seulement vous devez vous déconnecter, mais vous devez arrêter et redémarrer tous les services qui utilisent votre groupe. Si un redémarrage ne le comprend pas, vous avez de plus gros problèmes.

Utilisez Linux ACL (listes de contrôle d’access) – il s’agit d’une version plus fine du système d’autorisation,

 setfacl -R -m 'group:staff:rwx' -m 'd:group:staff:rwx' /usr/local/lib/R/ 

Cela définit les droits actifs pour le répertoire et les droits par défaut pour tout élément créé à l’intérieur.

Cela ne fonctionne pas sans avoir à vous reconnecter si vous venez de vous append au groupe de staff , mais vous ne pouvez définir l’autorisation que pour vous-même pour la session en cours.

J’avais un problème lorsqu’un utilisateur ne pouvait pas accéder au répertoire /foo/bar/baz même s’il avait des permissions car il n’avait pas access au répertoire de la bar .

J’ai eu le même problème, vérifiez si le dossier contient plus de règles ACL ou pas!

Si vous pouvez voir + (signe plus) lorsque vous répertoriez un dossier, cela signifie qu’il a des règles d’access spéciales. Par exemple:

 [user_in_apache_group@web02 html]$ ls -l total 16 drwxrwxr-x 16 apache apache 4096 Sep 4 13:46 ilias drwxrwxr-x+ 15 apache apache 4096 Sep 4 13:46 ilias5 

Voir la permission:

 [user_in_apache_group@web02 html] getfacl ilias5 # file: ilias5 # owner: apache # group: apache user::rwx user:user_in_apache_group:rx group::rwx mask::rwx other::rx 

Cela signifie donc que mon utilisateur (user_in_apache_group) n’a pas de permission d’écriture pour ce dossier.

La solution est ce que @techtonik a dit, append la permission d’écriture pour l’utilisateur:

 [user_in_apache_group@web02 html]$ sudo setfacl -mu:user_in_apache_group:rwx ./ilias5 

Vérifiez à nouveau la permission:

 [user_in_apache_group@web02 html] getfacl ilias5 ... user:user_in_apache_group:rwx ... 

J’espère que cela aide. 😉