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
linux
permissions
Tony
quelle
quelle
/home/git
?drwxrwxr-x
wenn 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.Antworten:
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
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)
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
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
7) Die Berechtigungen für Sites wurden geändert
Und voila Problem behoben .... hier ist Beweis
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
Dies war meine Verzeichnisstruktur VOR dem chmod
Dies war meine Verzeichnisstruktur NACH dem chmod
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.
quelle
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:
Versuchen Sie Folgendes und senden Sie die Nachricht von jedem:
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
.quelle
/home/git
und/home/git/fsg
aber wofür waren die Ergebnisse/home
?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
quelle
Versuchen Sie erneut, sich anzumelden, oder führen Sie es aus,
su - ftpadmin
um 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.quelle