Erlauben Sie dem root-Benutzer das Lesen, Schreiben, Ausführen, der Ordnerinhaber darf nur lesen und alle anderen Benutzer haben keinen Zugriff auf einen Ordner ubuntu

899
Bob monkeywarts

Ich mache ein "Wargame", ähnlich dem auf overthewire.org. Ich habe den root-Benutzer Ubuntu, der Dateien in einem Ordner lesen, schreiben und ausführen kann. Ich habe einen Benutzer pro Ordner, der über Lesezugriff auf die Dateien in diesem Ordner verfügen sollte, und alle anderen Benutzer sollten keinen Zugriff auf den Ordner haben. Was ist der Befehl chmod, um dies zu tun? Vielen Dank!

3
Kann der Benutzer mit Lesezugriff auch die Dateien ausführen? Darren vor 7 Jahren 0

2 Antworten auf die Frage

0
Darren

Sie müssen den Benutzer als Eigentümer festlegen chown -R <username> <foldername>(-R wird rekursiv ausgeführt) und dann die Berechtigungen so einstellen, dass nur der Benutzer nur Lesezugriff hat chmod -R 400 <foldername>. Root kann die Dateien unabhängig von den festgelegten Berechtigungen lesen und schreiben. Das Problem, das Sie jetzt haben werden, ist, dass root keine Dateien ausführen kann, es sei denn, es ist mindestens ein Ausführungsbit gesetzt, so dass der Benutzer die Dateien auch ausführen muss chmod -R 500 <foldername>.

Sehen Sie hier für eine ziemlich gute Erklärung von Dateiberechtigungen.

0
Kamil Maciorowski

Ich habe den root-Benutzer Ubuntu, […]

Ich weiß nicht, ob Sie sich auf den root Benutzer oder einen regulären Benutzer beziehen, denubuntu Sie für Ihr Spiel als Root-Benutzer betrachten. Das ändert sich nicht viel in meiner Antwort.

In Ubuntu hat jeder reguläre Benutzer standardmäßig eine eigene Gruppe. Diese Gruppe enthält standardmäßig nur den entsprechenden Benutzer. Dies macht den folgenden Trick möglich:

sudo chown ubuntu:bob fileA sudo chmod 740 fileA 

Dieser Weg ubuntuhat alle Berechtigungen und kann bob(als einziges Mitglied der bobGruppe) nur die Datei lesen.

Sie könnten dies andersherum tun:

# but don't! explanation below sudo chown bob:ubuntu fileA sudo chmod 470 fileA 

Aber dann bobwäre der Besitzer in der Lage chmod, sich übermäßige Berechtigungen zu geben und sie aus der ubuntuGruppe zu entfernen oder mit den Berechtigungen "aller anderen" zu manipulieren. Jede Antwort, die Sie auffordert, bobden Eigentümer zu machen, muss diesen Fehler berücksichtigen.

Möglicherweise möchten Sie den Besitz und die Berechtigungen des Verzeichnisses auf ähnliche, jedoch etwas andere Weise festlegen. Möglicherweise möchten Sie diese Änderungen rekursiv durchführen. Beachten Sie, dass chown -RVerzeichnisse und Dateien davon betroffen sind. Aus diesem Grund benötigen Sie einen Ansatz, um sie voneinander zu unterscheiden. Siehe diese Antwort . Der Ansatz funktioniert mit chmodund chownund anderen Tools. Passen Sie es an Ihre Bedürfnisse an.

Um rekursiv Verzeichnisse mit Lese- und Ausführungsrechten zu versehen:

find /path/to/base/dir -type d -exec chmod 755 {} + 

So geben Sie Dateien Leserechte rekursiv:

find /path/to/base/dir -type f -exec chmod 644 {} + 
Nicht immer haben die Benutzerkonten ihre eigenen Gruppen. In vielen Fällen befinden sich Benutzer in der Gruppe * Benutzer *. Daher ist diese Antwort eine Lösung, jedoch nur für bestimmte Fälle. Massimo vor 5 Jahren 0