Ich habe vor kurzem Ubuntu Server auf meinem Server installiert, um Linux als neuen Benutzer auszuprobieren. Ich folgte einem Tutorial zum Einrichten des Webservers, in dem angegeben wurde, dass ich das Verzeichnis chmod 777
des Webservers benötige, in das geschrieben werden kann.
Wie auch immer, ich habe ein neues Konto für einen Typen erstellt, damit er einige Dateien auf dem Server sehen kann, die ich in seinem Heimverzeichnis abgelegt habe:
adduser francis
Nach dem Erstellen des Kontos habe ich überprüft, über welchen Zugriff er verfügt
groups francis
Es hieß "francis: francis", also kein Problem, dachte ich, das Ubuntu hat ihn standardmäßig nicht in Gruppen aufgenommen, was Sinn macht, es hat ihn sicherheitstechnisch ohne zusätzliche Berechtigungen erstellt, also ist alles in Ordnung und gut. Eine Woche später fand ich in absolutem Entsetzen heraus, dass er, obwohl er keine Dinge wie SUDO ausführen oder in Systemverzeichnissen herumspielen konnte, vollen Zugriff auf fast alles andere auf dem Server hatte. Zum Beispiel hatte er vollen Lese- / Schreibzugriff auf meine Webserver-Dateien unter / var / www (und damit auf Passwörter, die in PHP-Konfigurationsdateien usw. gespeichert sind), obwohl sich dieses Verzeichnis NICHT in seinem Home-Verzeichnis befindet und ich ihn niemals einer Gruppe hinzugefügt habe, die dies könnte Ich habe ihm auch keinen besonderen Zugriff auf irgendetwas gewährt, nachdem ich den Adduser ausgeführt habe.
Wie auch immer, was ist hier los? Wie kann ich seinen Zugang zu etwas Wichtigem töten? Er sollte nicht in der Lage sein, auf Dinge wie / media oder / var / www zuzugreifen. Ich dachte, dass neue Benutzer standardmäßig daran gehindert werden, etwas Gefährliches zu tun oder zu schnüffeln, wo sie nicht sein sollten.
Zusammenfassend muss ich ihm nur den Zugriff auf Verzeichnisse erlauben, die ich manuell spezifiziere + auf Verzeichnisse, die er benötigt, um richtig zu funktionieren (sein Heimatverzeichnis, vim, nano usw.).
Vielen Dank
quelle
chmod
anderswo verwendet haben, können Sie jedoch andere Probleme haben.Antworten:
Dies ist wie vorgesehen. Und noch schlimmer. chmod 777 bedeutet ... "Ich möchte, dass der Eigentümer, jeder in seiner Gruppe und jeder überhaupt Berechtigungen zum Lesen, Schreiben und Ausführen hat."
Welches ist ziemlich schrecklich.
Und für einen Webserver ist 777 nicht optimal. 755 (Eigentümer hat die vollständige Berechtigungsgruppe und andere haben Read + Execute) ist eine übliche Standardeinstellung, aber von der Sie sagten, dass Sie mindestens Read-Write- oder Read-Write-Execute für den Eigentümer (den Webserver-Benutzer) und möglicherweise möchten die Gruppe und keine Berechtigungen für den Benutzer. Es gibt eine umfassendere Frage zu den entsprechenden Berechtigungsstufen für Serverfehler, Sie sollten jedoch 640 oder 740 in Betracht ziehen.
Sie können den Benutzer jedoch auch in seine eigene kleine Welt versetzen. Richten Sie chroot ein, um den Benutzer an seinem Platz im System zu halten. Hierfür gibt es Guides, zum Beispiel die exzellente Antwort von oli, die je nach Ihren Bedürfnissen eine Option sein kann.
quelle
Im Wesentlichen bricht es so zusammen:
Leseberechtigungen sind also nur 4, Lese- und Schreibberechtigungen sind 6, Lese- und Ausführungsberechtigungen sind 5 und alle (Lesen, Schreiben, Ausführen) sind 7. Auf diese Weise berechnen Sie einen Berechtigungsoktettwert für einen Eigentümer oder eine Eigentümergruppe oder alle.
Wenn Sie diese Berechtigungen
chmod
auf einen Datei- oder Verzeichnisspeicherort anwenden , werden die oben berechneten Zahlen wie folgt angewendet:Wenn ich mir und meiner Gruppe Lese-, Schreib- und Ausführungsberechtigungen für einen Ordner geben wollte, den ich besitze, aber nicht wollte, dass alle ihn lesen können, würde ich Folgendes verwenden:
Weitere Informationen finden Sie in der Manpage zu chmod :
quelle
chmod ugo+rwx <...>
. Die Zeichen stehen für u ser, g ruppe, o ther; r ead, w rite, e x ecute. Sie können '-' verwenden, um zu entfernen (zB:)chmod go-wx <...>
. Beachten Sie nur, dass dies nur genau das hinzufügt oder entfernt, was Sie eingeben.chmod ugo+rwx <file>; chmod u+rwx <file>
nicht Zugang für Gruppe entfernen / andere.chmod 777
, was es tat, und hier leitete ich meine Erklärung.Wie andere erwähnt haben, sollten Sie keine Berechtigungen auf 777 festgelegt haben
Hier ist ein hilfreiches Referenzblatt, das ich verwende.
quelle
Um Dateien für eine Person freizugeben, bei der Sie sich angemeldet haben, müssen Sie nichts Besonderes tun. Bei einer Standard-Debian-Installation haben Benutzer Zugriff auf die Home-Verzeichnisse der jeweils anderen Benutzer.
Zum Beispiel,
Die Berechtigungen für mein Basisverzeichnis sind für jeden Benutzer auf meinem System Lese- (r) und Zugriffsberechtigungen (x) . Nur ich habe zusätzlich Schreibzugriff (w) .
Außerdem ist die Standardeinstellung
umask
unter Ubuntu so, dass Dateien und Verzeichnisse, die Benutzer erstellen, standardmäßig weltweit lesbar sind . Sie könnten dasumask
auf setzen ,077
wenn Sie das nicht wollten.Was dies bedeutet, dass in einer Standardkonfiguration nichts zu tun ist , wenn der Benutzer ein
you
Dokument~/README.txt
für michyou
freigeben möchte. Ich kann es mir einfach ansehen:Ich kann die Datei nicht bearbeiten oder entfernen, aber ich kann sie an einen Ort kopieren, an dem ich Schreibberechtigung habe. Dann besitze ich die Kopie:
Es gibt gute Gründe, warum der Großteil des Systems standardmäßig weltweit lesbar ist, wie ich in einer anderen Antwort auf AskUbuntu erklärt habe . Auf einem gemeinsam genutzten System kann es jedoch sinnvoll sein, private Verzeichnisse für Nichtbesitzer unzugänglich zu machen:
... da viele Benutzer die Standard-QED anscheinend nicht kennen ;-). Es wäre jedoch klüger, Benutzer darauf aufmerksam zu machen, dass Dateiberechtigungen keine Geheimnisse schützen.
quelle
In Ubuntu hat jeder Benutzer das Superuser-Privileg, das in der Gruppe 'sudo' hinzugefügt wurde. Bitte überprüfen Sie dies, um sicherzustellen, dass kein anderer Benutzer in dieser Gruppe hinzugefügt wurde.
Um Ihre Dateien und Ihr Verzeichnis vor anderen Benutzern zu schützen, können Sie in der obigen Antwort die von Herrn Journeyman Geek vorgeschlagene Berechtigung festlegen.
Sie können auch spezielle Berechtigungen verwenden, um Ihre Dateien und Verzeichnisse vor anderen zu schützen.
quelle