Berechtigung verweigert, aber Gruppenberechtigungen sehen auf redhat gut aus

11

Ich habe einen Benutzer ftpadmin:

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

Die wichtige Gruppe zu beachten ist "git"

Dann habe ich mein Git-Repository:

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

Ftpadmin ist also ein Mitglied von git, und git hat allen Personen in der Gruppe alle Berechtigungen erteilt. Warum sehe ich das, wenn ich mich als ftpadmin anmelde:

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

Scheint, als hätte ich die Erlaubnis ...

Update Die Berechtigungen für / home / git sind

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

sieht immer noch gut aus ...

Update Neue Berechtigungen für / home / git sind:

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

Berechtigungen für / home / git / fsg sind:

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

Ich bekomme aber immer noch

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied
Tony
quelle
1
Was sind die Berechtigungen für /home/git?
Zoredache
drwxrw-rw- 6 git git 4096 26. April 09:20 git
Tony
sollte sein, drwxrwxr-xwenn Sie möchten, dass es für Nicht-Gruppenmitglieder schreibgeschützt ist, aber von Gruppenmitgliedern geändert werden kann; sollte sein, drwxrwx---wenn Sie nur möchten, dass Gruppenmitglieder alleine dabei sind.
Avery Payne
4
Sie müssen die Gruppe „x“ Bit gesetzt ist in der Verzeichnisgruppe zu ermöglichen sucht . Die "rw-" Berechtigungen ermöglichen das Öffnen einer Datei mit ihrem Namen (r) oder das Erstellen einer Datei (w), jedoch nicht das Auflisten oder Durchsuchen der Dateien (x).
mpez0
hat nicht funktioniert. siehe mein letztes Update
Tony

Antworten:

9

Wollte mpez0 speziell +1 geben, für seine Antwort "Sie müssen das Bit" Gruppe "x" im Verzeichnis setzen, um Gruppensuchen zu ermöglichen. Mit den Berechtigungen "rw-" können Sie eine Datei mit ihrem Namen (r) öffnen oder eine Datei erstellen (w), aber keine Auflistung oder Suche der Dateien (x). "

Es ist so leicht zu vergessen und seine Lösung ist in der Mitte begraben. Dies ist definitiv ein Problem für neue Linux-Benutzer in Bezug auf Datei- / Verzeichnisberechtigungen für Benutzer und Gruppen.

Alles, was Avery sagte, stimmte mit dem Geld überein. Ich wünschte, ich könnte Ihnen auch +1 geben.

Ein weiteres detaillierteres Beispiel könnte neuen Linux-Benutzern helfen ( keine Gutschrift suchen, nur ein weiteres Beispiel für Klarheit ). Auf meinem eigenen PC wollte ich einen zusätzlichen Benutzer für ein bestimmtes Entwicklungsprojekt erstellen. Testete einige SSH- und SFTP-Probleme zwischen meinem Computer und einem Server im Internet. Ich habe den gleichen Fehler "Berechtigung verweigert" erhalten, nachdem ich alles eingerichtet habe ... und ja, es sah korrekt aus, mit Ausnahme des Suchproblems, das auf den Berechtigungen für andere basiert, auf die mpez0 hingewiesen hat.

Hinweis: Für neue Linux-Benutzer sind die Berechtigungen Benutzer, Gruppe, andere oder rwx, rwx, rwx und sehen folgendermaßen aus

drwxr-xr--   

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

Für 'andere' werden wir daran erinnert, dass es NICHT ausreicht, das Verzeichnis zu finden / zu suchen, daher die Fehlermeldung.

Folgendes habe ich getan (in Schritt 6 ist die Fehlermeldung aufgetreten)

1) hat einen Benutzer erstellt, hoiuser (um Benutzerinformationen anzuzeigen, können Sie den Finger cmd, "finger hoiuser" verwenden oder die Datei 'cat / etc / passwd' lesen).

2) eine Gruppe erstellt, hoidevs (Benutzer "hoiuser" zur Gruppe hinzugefügt)

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

Denken Sie daran, dass Sie sich abmelden und erneut anmelden müssen, damit die neuen Gruppenberechtigungen der Konto-ID zugeordnet werden können.

3) chgrp hoidevs für Verzeichnis / home / userz / data / Sites / hoi und erstellt einen Platz für die Dateien

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) Ein Terminalfenster geöffnet, Benutzer userz war aktiv

5) su - hoiuser (auf user hoiuser umgestellt)

6) Es wurde versucht, 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) Die Berechtigungen für Sites wurden geändert

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 ./

Und voila Problem behoben .... hier ist Beweis

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/

Selbst wir erfahrenen Linux / Unix-Benutzer brauchen ab und zu eine Erinnerung.

Wie bereits erwähnt, reicht es nicht aus, nur dem Verzeichnis, in dem sich die Dateien befinden, die richtigen Berechtigungen zu erteilen. Sie müssen auch sicherstellen, dass alle Verzeichnisse, die zu diesem Verzeichnis führen, über die richtigen Berechtigungen verfügen, insbesondere die Fähigkeit für "andere" "suchen" und suchen Sie nach dem Verzeichnis und den Dateien. Kaum intuitiv, wenn x Ausführen bedeutet, richtig.

Meine Unterverzeichnisstruktur war: / home / userz / data / Sites / hoi / html /

Von zu Hause aus starten

userz@zareason-breeze:~$ pwd
/home

Dies war meine Verzeichnisstruktur VOR dem 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/

Dies war meine Verzeichnisstruktur NACH dem 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/

Beachten Sie, dass die einzige Änderung die Empfangsberechtigungen für 'other' für das Verzeichnis 'Sites' waren. Hoffe das hilft anderen, es war eine gute Auffrischung für mich.

CBPHP
quelle
3
Ich hatte ein ähnliches Problem mit FreeBSD und OpenBSD. Der Schlüssel für mich war dieser Teil: Denken Sie daran, dass Sie sich abmelden und erneut anmelden müssen, damit die neuen Gruppenberechtigungen mit der Konto-ID verknüpft werden. In der FreeBSD-Dokumentation heißt es: "-G Gruppenliste ... Änderungen der Gruppenmitgliedschaft werden für aktuelle Benutzeranmeldesitzungen nicht wirksam,
iboisver
6

Sie müssen über Berechtigungen für das Verzeichnis verfügen, das die Datei enthält, um zur Datei zu gelangen. Was sind die Berechtigungen für / home / git? (Ja, Zoredache, ich habe dir +1 gegeben, um darauf hinzuweisen)


Follow-up: Sie benötigen das für die Gruppe gesetzte Execute (x) -Bit, damit diese Gruppe das Verzeichnis betreten kann. Stellen Sie sich das als grobe Analogie zur Windows-Einstellung "Traverse Directory" vor. Ohne diese Option wird der Zugriff für die Gruppe verweigert. Wenn Sie verzweifelt sind, können Sie Folgendes tun:

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

Versuchen Sie Folgendes und senden Sie die Nachricht von jedem:

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

Jeder von diesen sollte für zugänglich sein ftpadmin. Wenn einer von ihnen es nicht ist , wird es Sie davon abhalten, sich darauf einzulassen /home/git/fsg.

Avery Payne
quelle
drwxrw-rw- 6 git git 4096 26. April 09:20 git
Tony
macht Sinn, ich bekomme immer noch eine Erlaubnis verweigert auf / home / git / fsg, die drwxrwxr-x 7 git git 4096 20. April 14:17 fsg
Tony
und bei dieser letzten "Berechtigung verweigert" ist das Gruppenausführungsbit gesetzt? Es spielt keine Rolle, ob Sie die Erlaubnis für das Kind haben, wenn auch die Eltern keine Erlaubnis haben.
Avery Payne
Schauen Sie sich mein aktuelles Update an. Ich habe die Berechtigungen dort abgelegt und das Group-Exec-Bit ist gesetzt
Tony
Ich sehe, Sie haben Ergebnisse für /home/gitund /home/git/fsgaber wofür waren die Ergebnisse /home?
Avery Payne
4

Nachdem Sie die Gruppen eines Benutzers X über den Root-Zugriff geändert haben, müssen Sie sich mit diesem Benutzer X abmelden und erneut anmelden. Andernfalls werden neue Gruppen nicht berücksichtigt

Marco Marsala
quelle
3

Versuchen Sie erneut, sich anzumelden, oder führen Sie es aus, su - ftpadminum sich in der aktuellen Shell anzumelden. Da Gruppen beim Anmelden festgelegt werden, haben Sie möglicherweise nur so und so zu einer Gruppe hinzugefügt, aber die alten Gruppeneinstellungen werden weiterhin verwendet.

Erjiang
quelle