Darin liegt ein Ordner mit meinen Notizen zum System.
Ich bin als Benutzer1 angemeldet
cd masternotes
erzeugt:
bash: cd: mastersnotes: permission denied
whoami
erzeugt:user1
ls -l
erzeugt:
drw-rw-rw-. 2 user1 user1 4096 Mar 26 20:47 masternotes
ls -l
innerhalb des Verzeichnisses wird Folgendes erzeugt:
-rw-rw-rw-. 7 user1 user1 345 Oct 7 2006 crontab
-rw-rw-rw-. 7 user1 user1 348 Oct 7 2006 crontab~
-rw-rw-rw-. 7 user1 user1 3702 Oct 7 2006 grep_usage.txt
-rw-rw-rw-. 7 user1 user1 91868 Oct 7 2006 lvm-layout-10-14-03.tif
-rw-rw-rw-. 7 user1 user1 30 Oct 7 2006 mysql
-rw-rw-rw-. 7 user1 user1 35764 Oct 7 2006 notes
chmod -R 666 masternotes
Ich bin auf den Ordner zugelaufen .
chown
Ich bin zu Root und chgrp
dann zu Root und wieder zurück zu Benutzer1 gelaufen .
Root kann heruntersteigen, den Ordner aufrufen und die Datei öffnen.
Benutzer1 kann nicht.
Irgendwelche Hinweise, was hier vor sich geht?
Antwort1
Das ist einBerechtigungenProblem, kein Eigentumsproblem.
In den Berechtigungen, die Sie uns gezeigt haben, fehlen auffälligerweise die Ausführungsberechtigungen (abgekürzt x
und dort angezeigt, wo -
in steht ).rw-
Ausführungsberechtigungen funktionieren für Verzeichnisse ganz anders als für normale Dateien. Für Verzeichnisse ermöglichen AusführungsberechtigungenGeben Sie das Verzeichnis ein(d. h., um cd
darauf zuzugreifen oder es in einem Dateimanager zu öffnen). Sie bieten auch die Möglichkeit, zu versuchen, auf Dateien im Verzeichnis zuzugreifen (ob dies gelingt, hängt allerdings auch von anderen Berechtigungen ab, manchmal auch von den Berechtigungen der Dateien, auf die zugegriffen wird).
root
kann das Verzeichnis betreten, da es nicht wie üblich an Berechtigungen gebunden ist. Befehle und Anwendungen, die als ausgeführt werden, root
versuchen in vielerlei Hinsicht, Berechtigungen zu respektieren, um den Wünschen des Benutzers zu entsprechen. root
Hat jedoch die Berechtigung, jede Operation (die das Betriebssystem ausführen kann) für jede Datei oder jedes Verzeichnis auszuführen. In einer root
Shell cd
ist der Zugriff auf ein Verzeichnis ohne Ausführungsberechtigung erfolgreich.
Die LösungZur Lösung des Problems führen Sie Folgendes aus:
chmod u+x masternotes
Dadurch erhält ( +
) der Eigentümer von masternotes
( u
) ausführbare Berechtigungen ( x
) für das Verzeichnis.
Anschließend können Sie das Verzeichnis aufrufen und als normaler Benutzer versuchen, auf die dort vorhandenen Dateien zuzugreifen.
Wenn Sie möchten, dass dies auch den Mitgliedern des Gruppenbesitzers möglich ist, können Sie stattdessen Folgendes ausführen:
chmod ug+x masternotes
Aber Sie sind wahrscheinlich das einzige Mitglied Ihrer benutzerspezifischen Gruppe (dem der Ordner gehört).
Der chmod
Befehl hiernichtmuss ausgeführt werden als root
--es ist Absicht, dass ichnichtsudo
in beiden Befehlen enthalten . Sieeigenden Ordner, sodass Sie seine Berechtigungen selbst ändern können. Sie müssen das nicht root
für Sie tun.
Falls Sie interessiert sind anAusführungsberechtigungen numerisch festlegen, denken Sie daran, dass für jede Ziffer, die Sie hinzufügen (beginnend mit Null):
- 4 zum Lesen.
- 2 zum Schreiben.
- 1 für Ausführen.
Zum Beispiel, wenn Sie möchten, dass jeder lesen und ausführen kannsome-file
aber nur der Eigentümer schreiben kann, verwenden Sie:
chmod 755 some-file
Ich empfehleFilePermissions in der Community-Dokumentation, für weitere Informationen zu Dateiberechtigungen in Ubuntu, einschließlich des ausführbaren Bits und seiner besonderen Bedeutung für Ordner.