Warum kann ich keine Datei lesen oder schreiben, deren Besitzer root ist und in Terminal.app auf Snow Leopard die Berechtigung 707 lautet?

1463
quack quixote

Dies passiert, aber warum?

liuxiang@MacBookPro: ~/casecode/sh $ ls -l sa  -rwx---rwx 1 root admin 55 10 21 00:07 sa liuxiang@MacBookPro: ~/casecode/sh $ cat sa cat: sa: Permission denied liuxiang@MacBookPro: ~/casecode/sh $ date >> sa -bash: sa: Permission denied liuxiang@MacBookPro: ~/casecode/sh $ ./sa -bash: ./sa: Permission denied 
1
Was ist die Ausgabe von 'id'? Emil Sit vor 15 Jahren 0
Was zeigt ls -e? (zeigt die ACL) Mark vor 15 Jahren 1

2 Antworten auf die Frage

2
mparker17

Wie bei den meisten anderen UNIX-ähnlichen Betriebssystemen können Sie mit Macintosh den Zugriff auf eine Datei mit POSIX-Berechtigungen steuern . Ab Mac OS / X 10.4 (Tiger) können Sie jedoch mit der Datei und dem Betriebssystem des Macintosh (optional) eine Zugriffssteuerungsliste einrichten . Zugriffssteuerungslisten geben einem Administrator weit mehr Kontrolle als die normalen POSIX-Berechtigungen (ACLs werden meistens in Arbeitsumgebungen verwendet).

Nebenbei bemerkt, Windows hat seit Windows NT ACLs unterstützt. und bestimmte Versionen von Linux funktionieren ebenfalls. Zu Ars Technica gibt es auch einen großartigen Artikel über Zugriffssteuerungslisten auf Macintosh .

Wie auch immer, nach dem Mac OS X Server v10.6 - Benutzerverwaltung (siehe Seite 28), wenn es eine oder mehrere ACL - Regeln für die Datei festgelegt ist und eine dieser ACL - Regeln auf Sie zutrifft, dann nehmen Sie die ACL - Regeln Vorrang über die regulären POSIX-Berechtigungen .

In Ihrem Fall befindet sich Ihre Datei im Besitz des Benutzers "root" ("Superuser") und gehört zur Gruppe "admin" (nur Benutzer, die im Bereich "Konten" der Systemeinstellungen als "Administratoren" gekennzeichnet sind, gehören zu dieser Gruppe). Die POSIX-Berechtigungen für Ihre Datei sind so festgelegt, dass root die Datei lesen, schreiben und ausführen kann. verweigert jeglichen Zugriff für die Gruppe "admin" und ermöglicht anderen Benutzern das Lesen, Schreiben und Ausführen. Wie Sie gezeigt haben, sollten Sie zu dieser Datei alles tun können, was Sie wollen! Mach dir keine Sorgen; Sie werden nicht verrückt (was immer beruhigend ist zu wissen ^ _ ^) ... es scheint, dass eine ACL-Regel im Weg ist und die POSIX-Berechtigungen der Datei überschreibt.

Deshalb fragte Mark:

Was zeigt ls -e?

... ls -ezeigt die Zugriffssteuerungslistenregeln für diese Datei. Wenn Sie einen Macintosh-Server haben, gibt es ein nettes Bedienfeld, in dem Sie alle Regeln verwalten können. (Im "Find Info" -Dialog des Finders gibt es auch eine begrenzte Zahl. Suchen Sie die Datei im Finder und drücken Sie die Tastenkombination "Befehl" + "I", um Informationen zu erhalten). Erweitern Sie den Bereich "Freigabe und Berechtigungen" unten Im Fenster werden Ihnen einige der ACL-Regeln angezeigt. Sie müssen dieses Fenster jedoch entsperren, um die Berechtigungen zu ändern.

Wenn der Finder-Weg nicht funktioniert, müssen Sie es versuchen ls -e. Hoffentlich werden die ACL-Regeln, die ausgedruckt werden, nicht zu kompliziert. Es gibt jedoch eine praktische ACL-Referenz in der Sicherheitsübersicht im Macintosh Dev Center . Gerne können Sie auf diesen Beitrag antworten, wenn Sie zusätzliche Hilfe benötigen.

In Ihrem Fall können Sie, selbst wenn Sie die ACL-Regeln kennen, nicht viel dagegen tun. Nur der Eigentümer (oder der Superuser, der in Ihrem Fall auch der Eigentümer ist) können dies ändern. und nur Personen, die zur Gruppe "admin" gehören (zu der Sie sagen, dass Sie nicht dazugehören), können im Namen des Superbenutzers handeln. Wenn Sie es jedoch versuchen möchten, können Sie (oder jemand, der Administrator ist) in das Verzeichnis wechseln, in dem sich die Datei befindet, und einen oder mehrere der folgenden Befehle ausführen:

sudo chmod +a "liuxiang allow read" sa #, um das Lesen zu ermöglichen

sudo chmod +a "liuxiang allow write" sa #, um das Schreiben zu ermöglichen

sudo chmod +a "liuxiang allow execute" sa #, um die Ausführung zu ermöglichen

... (oder etwas Ähnliches), um das Problem zu beheben (es fordert Sie auf, das Kennwort der Person einzugeben, die den Befehl ausführt).

Ich hoffe das hilft!

0
Albert

Schauen Sie hier: Befehl zum Entsperren "gesperrter" Dateien unter OS X

Vielleicht hilft das.