Autorisation refusée mais les autorisations de groupe semblent bonnes sur redhat

11

J'ai un utilisateur ftpadmin:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(git)

Le groupe important à noter est "git"

Ensuite, j'ai mon dépôt git:

ls -al
drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Ftpadmin est donc membre de git, et git a donné toutes les autorisations aux personnes du groupe. Pourquoi est-ce que je vois cela lorsque je me connecte en tant que ftpadmin:

-bash-3.2$ ls -al /home/git/
ls: /home/git/fsg: Permission denied
...

On dirait que je devrais avoir la permission ...

Mettre à jour Les autorisations sur / home / git sont

drwxrw-rw-   6 git      git          4096 Apr 26 09:20 git

semble toujours bon ...

Mettre à jour Les nouvelles autorisations sur / home / git sont:

drwxrwxrw-   6 git      git          4096 Apr 26 09:20 git

Les autorisations sur / home / git / fsg sont:

drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

Cependant, je reçois toujours

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied
Tony
la source
1
Quelles sont les autorisations sur /home/git?
Zoredache
drwxrw-rw- 6 git git 4096 26 avril 09:20 git
Tony
devrait être drwxrwxr-xsi vous le souhaitez en lecture seule pour les non-membres du groupe mais modifiable par les membres du groupe; devrait l'être drwxrwx---si vous voulez que seuls les membres du groupe y participent.
Avery Payne
4
Vous avez besoin du bit de groupe "x" défini dans le répertoire pour permettre les recherches de groupe . Les autorisations "rw-" permettent d'ouvrir un fichier en fonction de son nom (r) ou de créer un fichier (w), mais pas de répertorier ou de rechercher les fichiers (x).
mpez0
n'a pas fonctionné. voir ma dernière mise à jour
Tony

Réponses:

9

Je voulais donner à mpez0 un +1 spécifiquement, pour sa réponse "Vous avez besoin du bit" x "du groupe défini dans le répertoire pour autoriser les recherches de groupe. Les autorisations" rw- "permettent d'ouvrir un fichier en fonction de son nom (r) ou de créer un fichier (w), mais sans répertorier ni rechercher les fichiers (x). "

Son si facile à oublier, et sa solution est enterrée au milieu. C'est certainement un problème pour les nouveaux utilisateurs Linux en ce qui concerne les autorisations de fichiers / répertoires pour les utilisateurs et les groupes.

Tout ce qu'Avery a dit était juste sur l'argent, j'aimerais encore une fois vous donner un +1.

La figure un autre exemple plus détaillé pourrait aider les nouveaux utilisateurs de Linux ( ne recherchant aucun crédit, fournissant simplement un autre exemple pour plus de clarté ). Sur mon propre PC, je voulais créer un utilisateur supplémentaire pour un projet de développement spécifique. Je testais des problèmes SSH, SFTP entre ma machine et un serveur colocalisé sur le Web. Vous avez la même erreur "Autorisation refusée" après avoir tout configuré ... et oui, cela semblait correct, sauf pour le problème de recherche basé sur les autorisations pour les autres que mpez0 a souligné.

Remarque: Pour les nouveaux utilisateurs Linux, les autorisations sont respectivement utilisateur, groupe, autre ou rwx, rwx, rwx et ressembleraient à ceci

drwxr-xr--   

user has read + write + execute, rwx 
group has only read and execute, r-x
other has only read acces r--

Pour «autre», il nous est rappelé qu'il ne suffit PAS de trouver / rechercher le répertoire, d'où le message d'erreur.

Voici ce que j'ai fait (j'ai rencontré le message d'erreur à l'étape 6)

1) a créé un utilisateur, hoiuser (pour voir les informations utilisateur, vous pouvez utiliser le doigt cmd, "finger hoiuser" ou lire le fichier 'cat / etc / passwd')

2) créé un groupe, hoidevs (utilisateur ajouté "hoiuser" au groupe)

root@zareason-breeze:/etc# cat group | grep hoidevs 
hoidevs:x:1010:userz,hoiuser 

N'oubliez pas que vous devez vous déconnecter et vous reconnecter pour que les nouvelles autorisations de «groupe» soient associées à l'ID de compte.

3) chgrp hoidevs pour le répertoire / home / userz / data / Sites / hoi et créé un emplacement pour les fichiers

hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

4) Ouverture d'une fenêtre de terminal, l'utilisateur userz était actif

5) su - hoiuser (remplacé par l'utilisateur hoiuser)

6) Tentative de cd / home / userz / data / Sites

hoiuser@zareason-breeze:/home/userz/data$ cd Sites
-su: cd: Sites: Permission denied    (voila, the problem)


userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr--  11 userz userz  4096 2012-02-24 16:20 ./
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/

7) Modification des autorisations pour les sites

userz@zareason-breeze:~/data/Sites$ chmod 755 .
userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr-x  11 userz userz  4096 2012-02-24 16:20 ./

Et voila problème résolu .... en voici la preuve

hoiuser@zareason-breeze:/home/userz/data$ id
uid=1009(hoiuser) gid=1009(hoiuser) groups=1009(hoiuser),1010(hoidevs)

hoiuser@zareason-breeze:/home/userz/data$ cd Sites        (<- yea no error message)
hoiuser@zareason-breeze:/home/userz/data/Sites$ cd hoi
hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x 11 userz userz 4096 2012-02-24 16:20 ../
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Même les utilisateurs expérimentés de Linux / Unix ont besoin d'un rappel de temps en temps.

Comme cela a été souligné, il ne suffit pas de simplement accorder les autorisations appropriées au répertoire où se trouvent les fichiers, vous devez également vous assurer que tous les répertoires menant à ce répertoire ont les autorisations appropriées, en particulier la possibilité pour "autre" de "rechercher" et recherchez le répertoire et les fichiers. À peine intuitif lorsque x signifie exécuter, à droite.

La structure de mon sous-répertoire était: / home / userz / data / Sites / hoi / html /

À partir de la maison

userz@zareason-breeze:~$ pwd
/home

C'était ma structure de répertoire AVANT le chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr--  11 userz userz     4096 2012-02-24 16:20 Sites/    (<-- Do you see it, other is r--)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

C'était ma structure de répertoire APRÈS le chmod

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr-x  11 userz userz     4096 2012-02-24 16:20 Sites/      (<-- Fixed by the chmod > 755 ., now r-x)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

Notez que le seul changement a été les autorisations rx pour «autre» pour le répertoire «Sites». J'espère que cela aide les autres, c'était un bon rappel pour moi.

CBPHP
la source
3
J'avais un problème similaire sur FreeBSD et OpenBSD. La clé pour moi était cette partie: N'oubliez pas que vous devez vous déconnecter et vous reconnecter pour que les nouvelles autorisations de «groupe» soient associées à l'ID de compte. Effectivement, la documentation de FreeBSD déclare: `-G grouplist ... les changements d'appartenance au groupe ne prennent pas effet pour les sessions de connexion utilisateur actuelles, obligeant l'utilisateur à se reconnecter pour être affecté par les changements.
iboisver
6

Vous devez avoir des autorisations sur le répertoire qui contient le fichier pour y accéder. Quelles sont les autorisations sur / home / git? (oui, Zoredache, je vous ai donné un +1 pour l'avoir signalé)


Suivi: Vous avez besoin du bit d'exécution (x) défini pour le groupe pour que ce groupe puisse entrer dans le répertoire. Considérez-le comme un analogue approximatif du paramètre Windows "Traverse Directory". Sans cela, l'accès sera refusé au groupe. Si vous êtes désespéré, vous pouvez faire:

chmod g+x /home/git
chmod g+x /home/git/fsg

Essayez ce qui suit et postez le message de chacun:

cd /home
cd /home/git
cd /home/git/fsg

Chacun de ceux-ci devrait être accessible par ftpadmin. Si l'un d'eux ne l'est pas , cela vous empêchera d'entrer /home/git/fsg.

Avery Payne
la source
drwxrw-rw- 6 git git 4096 26 avril 09:20 git
Tony
est logique, je reçois toujours une autorisation refusée sur / home / git / fsg qui est drwxrwxr-x 7 git git 4096 20 avril 14:17 fsg
Tony
et sur cette dernière "autorisation refusée", le bit d'exécution de groupe est-il défini? Peu importe si vous avez l'autorisation pour l'enfant si le parent n'en a pas aussi.
Avery Payne
Consultez ma dernière mise à jour. Je mets les autorisations là-bas et le bit group-exec est défini
Tony
Je vois que vous avez des résultats pour /home/git, /home/git/fsgmais pour quels résultats /home?
Avery Payne
4

Après avoir changé les groupes d'un utilisateur X via un accès root, vous devez vous déconnecter et vous reconnecter avec cet utilisateur X, sinon les nouveaux groupes ne seront pas pris en compte

Marco Marsala
la source
3

Essayez de vous reconnecter ou d'exécuter su - ftpadminpour vous connecter à l'intérieur du shell actuel. Étant donné que les groupes sont définis lorsque vous vous connectez, il se peut que vous ayez ajouté telle ou telle chose à un groupe, mais les anciens paramètres de groupe sont toujours utilisés.

erjiang
la source