Les autorisations du groupe Debian/Linux ne fonctionnent pas comme elles sont censées le faire
-
12-12-2019 - |
Question
Je travaille sur le projet BOINC.
J'ai deux utilisateurs :boincadm et www-data (pour Apache).Tous deux appartiennent au groupe Boinc
www-data : boinc www-data boincadm
boincadm : boinc adm dialout fax cdrom floppy tape audio dip www-data video plugdev netdev bluetooth lpadmin fuse scanner sambashare subversion
J'ai un projet BOINC créé dans / home / bincadm / projects / myproject / tous les fichiers et dossiers il y a la propriété de BOINCADM:boinc et avoir les autorisations rwxrwx ---.
Le problème est que l'utilisateur de www-data ne peut pas accéder aux fichiers, ce qui provoque plusieurs erreurs telles que :
Avertissement:require_once(../inc/db.inc):échec de l'ouverture du flux :Autorisation refusée dans /home/boincadm/projects/myproject/html/user/index.php
Erreur fatale:Demandez une fois():Échec de l'ouverture requise '../inc/db.inc' (include_path='.:/usr/share/php:/usr/share/pear') dans /home/boincadm/projects/myproject/html/user/index. php
ou juste
Impossible d'accéder au fichier XXX
dans les journaux..
SI je change grant rwx en "autres" (777), cela fonctionne.
Ma question est la suivante : pourquoi les autorisations de groupe ne fonctionnent-elles pas comme prévu ?Des idées?
Je ne suis pas un expert en Linux, je pourrais donc rater quelque chose.
La solution 2
Voici comment je l'ai résolu :
Tout d'abord j'ai lu ceci :lienÀ un moment donné, cet article mentionnait le fichier /etc/group
où les informations sur les groupes sont stockées.
J'ai ouvert ce fichier et mentionné que malgré mes actions précédentes, il n'y a aucun www-data
en groupe boinc
.Et non www-data
en groupe boincadm
et le contraire.C'est étrange!Étrange car j'ai ajouté ces utilisateurs au groupe boinc en utilisant usermod
commande et je me suis assuré que ce groupe est principal pour les deux.De plus commande groups <username>
ont montré qu'ils étaient en groupe boinc
.
Alors maintenant la question est : Pourquoi est-ce arrivé ?
Le problème a été résolu en modifiant 3 lignes :
boinc:x:1111:boincadm, www-data
boincadm:x:1112:boincadm, www-data
www-data:x:1113:www-data, boincadm
J'avais besoin des 3 lignes pour que ça marche.J'espère que ça aide quelqu'un.Et j'aimerais quand même comprendre pourquoi le fichier /etc/group
n'a pas été modifié automatiquement lors de l'utilisation usermod
.Et pourquoi grops affiche un résultat correct si c'est le cas.
Autres conseils
Voici une possibilité :
www-data
a un groupe principal www-data
;le reste est groupes supplémentaires.
Le processus serveur a le bon utilisateur (par setresuid
ou similaire) et groupe principal (par setresgid
ou similaire), mais il lui manque les autres groupes supplémentaires (sans initgroups
ou similaire).
Si tel est le cas, vous avez plusieurs options :modifiez la propriété du fichier sur le groupe principal, modifiez le groupe sous lequel le serveur s'exécute ou corrigez le serveur pour inclure tous les groupes supplémentaires.