Berechtigungen für einen typischen gemeinsam genutzten Linux-Webhost

4323
JannieT

Ich versuche, die Dateiberechtigungen für ein typisches gemeinsam genutztes Linux-Webhosting-Konto zu verstehen. Ich kann rwx-Berechtigungen für die Entitäten OWNER GROUP und PUBLIC einer Datei oder eines Verzeichnisses festlegen. Was ist mir nicht ganz klar, wozu würden die Zugriffsberechtigungen normalerweise zugeordnet werden? Ich vermute, dass:

Benutzerberechtigungen beeinflussen, was ... ähm ... nicht sicher, ob
GRUPPEN- Berechtigungen Auswirkungen darauf haben, was ein auf dem Server ausgeführtes PHP oder ein anderes Skript tun könnte.
Andere (manchmal auch als PUBLIC oder WORLD bezeichnet) -Berechtigungen wirken sich auf die UA einer Website aus Besucher können tun

Kann jemand mein Verständnis dazu korrigieren, bestätigen oder erweitern?

KLÄRUNG:

Wenn ich meinem PHP-Skript, das auf dem Server ausgeführt wird, die Berechtigung zum Schreiben in eine Datei erteilen möchte, würde diese Berechtigung in USER, GROUP oder OTHER angegeben? Wenn ich den Browser eines Website-Besuchers verweigern möchte, um den Inhalt eines Verzeichnisses anzuzeigen, würde diese Berechtigung in USER, GROUP oder OTHER des Verzeichnisses angegeben?

5

3 Antworten auf die Frage

3
user unknown

Du hast es ziemlich durcheinander gebracht.

ugougo ist user, groupund other- nicht owner. Eigentümer ist der Benutzer, der normalerweise die meisten Rechte besitzt.

GROUP-Berechtigungen wirken sich darauf aus, was ein auf dem Server ausgeführtes PHP oder ein anderes Skript tun könnte

Gruppenberechtigungen haben keinen Einfluss auf die Möglichkeiten (Lesen, Schreiben, Ausführen), aber wer kann dies tun? Gleiches für den Benutzer:

USER-Berechtigungen (manchmal auch als PUBLIC bezeichnet) wirken sich darauf aus, was ein UA eines Website-Besuchers tun kann

Der Benutzer ist der Eigentümer, wird aber ofür verwendet other, was Sie als öffentlich bezeichnen. Und wieder - wer kann, nicht was getan werden kann.

Sie können die Abkürzungen ugobei der Verwendung verwenden chmod, was einfacher ist als die numerischen Codes:

 chmod ug+w sample1 chmod go-r sample2  chmod g=w sample3  
  • Beispiel1: Fügen Sie dem Benutzer und der Gruppe Schreibberechtigungen hinzu
  • Beispiel 2: Entfernen Sie Leseberechtigungen von der Gruppe und anderen
  • sample3: Gruppenberechtigungen zum Schreiben festlegen

Jede Datei gehört einem Benutzer und einer Gruppe. Sehen Sie sie mit ls -l. Beispiel:

ls -l /var insgesamt 12 drwxr-xr-x 2 root root 592 2012-01-12 08:02 backups drwxr-xr-x 28 root root 776 2011-08-18 05:12 cache drwxrwxrwt 2 root root 48 2010-06-22 01:46 crash drwxr-xr-x 2 root root 3704 2010-06-05 22:01 games drwxr-xr-x 84 root root 2296 2011-10-16 13:25 lib drwxrwsr-x 2 root staff 48 2007-10-08 12:47 local drwxrwxrwt 3 root root 80 2012-01-19 08:03 lock drwxr-xr-x 22 root root 5992 2012-01-19 08:01 log drwxrwsrwt 2 root mail 72 2012-01-18 07:56 mail 

Ein Teil der Auflistung von / var. Die meisten Verzeichnisse (d ...) gehören zu root.root, das auch ein Benutzer und eine Gruppe ist. Mail und Sachen sind jedoch Gruppen, die nicht mit dem Benutzer identisch sind.

Update (nach dem Update der Frage):

Wenn ich meinem PHP-Skript, das auf dem Server ausgeführt wird, die Berechtigung zum Schreiben in eine Datei erteilen möchte, würde diese Berechtigung in USER, GROUP oder OTHER angegeben? Wenn ich den Browser eines Website-Besuchers verweigern möchte, um den Inhalt eines Verzeichnisses anzuzeigen, würde diese Berechtigung in USER, GROUP oder OTHER des Verzeichnisses angegeben?

Nun, es ist nicht die Erlaubnis eines Skripts, dies oder jenes zu tun. Es ist immer die Erlaubnis des Benutzers, der das Skript ausführt.

Um ein Skript ausführen zu können, muss der Benutzer es lesen können. Das heißt, es wird von der Festplatte gelesen, um es in den Speicher zu legen und auszuführen. Sie können es nicht ausführen, ohne es zu lesen.

Um in eine Datei schreiben zu können, muss der Benutzer die Berechtigung haben, in ein Verzeichnis zu schreiben - nicht in das Skript oder Programm.

Wenn das Programm, das in ein Verzeichnis schreibt, ein Server ist, wird es normalerweise nicht von einem anonymen Benutzer im Web gestartet, sondern von einem speziellen Benutzer wie 'www'.

Vielen Dank für die Aufklärung der Namensverwirrung. Mein FTP-Programm (Filezilla nicht weniger) verwendet OWNER, GROUP und PUBLIC und ich wusste nicht, dass dies nicht die richtigen Linux-Namen waren. Ich werde meine Frage bearbeiten, um Verwirrung zu vermeiden. Ich denke, die anderen Informationen in Ihrer Antwort sind nicht relevant oder ich vermisse immer noch alles, was hier groß ist. JannieT vor 12 Jahren 0
Sie sagen also (ziemlich rundherum), dass in der Regel bei einem Shared-Hosting-Setup die USER-Berechtigung die Wirkung des auf dem Server ausgeführten PHP-Skripts beeinflusst, oder? In diesem Fall sollte also die GROUP-Berechtigung nicht einschränkender sein als die USER-Einstellung, es sei denn, es gibt ein besonderes Szenario. Was ist mit den Browser-Berechtigungen eines Besuchers? Ist das mit ANDEREN gleich? JannieT vor 12 Jahren 0
Letzte Frage zuerst: Der Browser des Benutzers läuft auf einem anderen Computer und hat keinerlei Einfluss auf ihn. Der Server weiß nicht einmal, welche Berechtigung der Benutzer auf der Remote-Maschine hat und welcher Benutzername dort verwendet wird. user unknown vor 12 Jahren 0
Es gibt keine allgemeine Benutzererlaubnis. Die erste Frage lautet: Wer ist der Benutzer, der das PHP-Skript ausführt? Dies hängt von dem verwendeten Server und seiner Konfiguration ab. Server werden meistens beim Start über init-Scripts gestartet, das heißt mit Root-Berechtigungen, aber root kann sie im Namen eines dritten Benutzers starten, wie z. B. www oder www-admin oder so. Im Normalfall kümmert sich die Installation darum, und Sie ändern die Berechtigungen für Dateien nicht manuell. Lesen Sie jedoch die Handbücher Ihres Servers und die README-Dateien. user unknown vor 12 Jahren 0
Das Bild beginnt hier klarer zu werden. Sie sagen also, egal wie der Server konfiguriert ist (spezielle Benutzer, Apache usw.), die Datei- und Ordnerberechtigungen können die Zugriffsberechtigungen des Browsers eines Besuchers in keiner Weise beeinflussen. Wenn ich den Browser-Zugriff kontrollieren möchte, muss ich .htaccess-Dateien oder obskure Ordnernamen usw. verwenden. JannieT vor 12 Jahren 0
3
Manwe

Lassen Sie uns einige Schlüsselwörter angeben.

FTPUSER = you with your ftp client WWWDAEMON = program (servers) that's responsible for processing your web pages and scripts  WWWUSER = user as which the WWWDAEMON processes your pages BROWSER = Someone looking at your website with a browser FILES = files that reside in your www/ftp site yourgroup = group that your FTPUSER belongs to and WWWUSER does not 

Sie greifen als FTPUSER mit einem FTP-Programm auf Ihre Dateien zu

-rwxr-xr-x 2 FTPUSER yourgroup 72 2012-01-18 13:56 somescript.php 

Jetzt .. weil WWWDAEMON Benutzer WWWUSER nicht Sie (FTPUSER) ist, respektiert er ANDERE Berechtigungen, wenn er readIhr Skript versucht . (Es gibt Hosting-Sites, auf denen Ihre Scripts als FTPUSER ausgeführt werden.) Das Entfernen der anderen Lese- und Ausführungsberechtigung blockiert die Verwendung von somescript.php

# this scipt is unusable trough a browser -rwxr-x--- 2 FTPUSER yourgroup 72 2012-01-18 13:56 somescript.php 

Durch das Erstellen eines Verzeichnisses mit weltweit schreibbaren Berechtigungen kann Ihr Skript dort schreiben. Wenn Sie dieses Verzeichnis jedoch nicht irgendwie schützen (z. B. mit .htaccess oder außerhalb Ihres Www-Verzeichnisses), kann dies auch bedeuten, dass der BROWSER direkt auf diese Dateien zugreifen kann, weil:

BROWSER contacts WWWDAEMON which runs as WWWUSER so  BROWSER can see everything processed by WWWDAEMON that the WWWUSER can.  

Verarbeitet bedeutet auch, dass WWWDAEMON auch den Zugriff auf .htaccess oder ähnliches beachtet.

Der Rat ist, sagen Sie, phpwritedirund geben Sie ihm Rechte + Rwx. Fügen Sie dort eine .htaccessDatei hinzu (sofern Ihr Hosting-Service dies zulässt)

deny from all 

Wenn dieses Skript ausgeführt wird, kann WWWUSER dieses Verzeichnis weiterhin verwenden. WWWDAEMON blockiert jedoch den Zugriff von BROWSER darauf.

Ausgezeichnet! Jemand, der meine Frage versteht und eine sehr klare und hilfreiche Antwort hat. JannieT vor 12 Jahren 0
2
Der Hochstapler

Da Sie über Shared Hosting sprechen, lassen Sie mich einfach ein paar lustige Details zu einem Shared Hoster hinzufügen, mit dem ich häufig arbeite. Aus meiner Erfahrung ist ein solches Setup in Shared-Hosting-Umgebungen nicht ungewöhnlich.

In Shared-Hosting-Umgebungen ist es nicht ungewöhnlich, dass mehrere Benutzer denselben Host mit Ihnen teilen. Natürlich haben sie alle Benutzerkonten.

Mein Benutzerkonto kann sein 123456-user1. Jetzt ist meine primäre Gruppe auf nobodyoder eingestellt nogroup, sodass alle neuen Dateien und Ordner, zu denen ich komme, gehören 123456-user1:nobody.

Sie werfen nicht einfach alle Benutzer auf dem Host in dieselbe primäre Gruppe, aus Sicherheitsgründen würde ich annehmen.

Nun kann ich meine Dateien lesen, keine Gruppe kann sie lesen (weil die Gruppe nobodyja ist ), wie liest Apache sie überhaupt?
Apache liest es, indem er eine Instanz unter Ihrem eigenen Benutzerkonto ausführt. Mit PHP würde es beispielsweise im CGI-Modus ausgeführt, um Dateien unter Ihrem Konto auszuführen.

Das erste Oktett der Berechtigungen ist also das, was für das gesamte System relevant ist. Es definiert, was sowohl Sie als auch Besucher der Website (sozusagen) für die Datei tun können. Die Gruppe kann ignoriert werden. Und das letzte Oktett für andere entspricht etwas dem Eigentümerteil.