Was ist das Besondere an der Linux-Erlaubnis 004?

23

Ich las gerade Practical Unix und Internet Security , als ich auf die folgenden Zeilen stieß, die ich nicht verstehen konnte.

Wenn Sie den wu-Archivserver verwenden, können Sie ihn so konfigurieren, dass hochgeladene Dateien im Modus 004 hochgeladen werden und nicht von einem anderen Client heruntergeladen werden können . Dies bietet einen besseren Schutz, als das Verzeichnis einfach unlesbar zu machen , da es verhindert, dass Benutzer Dateien hochladen und dann ihren Freunden den genauen Dateinamen zum Herunterladen mitteilen.

Eine Erlaubnis von 004 entspricht -------r--. Kann eine Datei nicht heruntergeladen werden, wenn sie über Lesezugriff verfügt? Auch warum wird es als besser angesehen, als das Verzeichnis einfach nicht lesbar zu machen? Was bedeutet das?

Hinweis: Dies gilt für nicht autorisierte Benutzer, die illegales und urheberrechtlich geschütztes Material auf Servern hinterlassen, die anonymes FTP verwenden. Die obige Lösung wurde vorgeschlagen, um dies zusammen mit einem Skript zu verhindern, das den Verzeichnisinhalt nach einer gewissen Zeit löscht.

Aswin PJ
quelle
Insbesondere scheint es, als verweise es auf WU-FTP von wuarchive.wustl.edu Ruhm.
Parthian Shot
2
Hier ist UMASK 004 gemeint und keine Erlaubnis!
Afsin Toparlak
3
@AfsinToparlak nein, das ist definitiv eine positive Erlaubnis, keine umask. Siehe die akzeptierte Antwort.
o11c
"Kann eine Datei nicht heruntergeladen werden, wenn sie Lesezugriff hat" Das ist nicht ganz richtig. Jeder außer dem Benutzer und der Gruppe, der die Datei gehört, hat Lesezugriff.
Scai
1
In Bezug auf die „ Dies bietet einen besseren Schutz als einfach machen das Verzeichnis nicht lesbar, da es Menschen aus der Upload - Dateien verhindert und dann ihre Freunde den genauen Dateinamen Download zu sagen. “ ... ein früherer Trick war wie ein Upload - Bereich etwas zu machen 333( oder d-wx-wx-wx) , die Menschen (FTP - Benutzer) können Dateien erstellen, sondern weil es keine Leseberechtigung ist [auf das Verzeichnis], konnten sie nicht Liste der Dateien im Upload - Verzeichnis. Wenn Sie jedoch den Namen kennen, können Sie die Dateien lesen / herunterladen.
TripeHound

Antworten:

33

Die Berechtigungen 004 (------ r--) bedeuten, dass die Datei nur von Prozessen gelesen werden kann, die nicht als derselbe Benutzer oder die selbe Gruppe wie der FTP-Server ausgeführt werden. Dies ist eher ungewöhnlich: Normalerweise hat der Benutzer mehr Rechte als die Gruppe, und die Gruppe hat mehr Rechte als andere. Normalerweise kann der Benutzer die Berechtigungen ändern, sodass es sinnlos ist, dem Benutzer restriktivere Berechtigungen zu erteilen. Dies ist sinnvoll, da der FTP-Server (vermutlich) keinen Befehl zum Ändern von Berechtigungen hat, sodass die Dateien ihre Berechtigungen behalten, bis etwas anderes sie ändert.

Da der Benutzer, unter dem der FTP-Server ausgeführt wird, die Dateien nicht lesen kann, können die Benutzer die Datei nicht herunterladen. Das macht es unmöglich, den FTP-Server zum Freigeben von Dateien zu verwenden.

Vermutlich liest ein Prozess, der als ein anderer Benutzer oder eine andere Gruppe ausgeführt wird, die Datei zu einem bestimmten Zeitpunkt, überprüft, ob sie einer Richtlinie entspricht, kopiert die Daten, wenn dies der Fall ist, und löscht die hochgeladene Datei.

Es wäre für mich sinnvoller gewesen, die Dateiberechtigungen 040 (nur für die Gruppe lesbar) zu vergeben und den Consumer-Prozess als dieselbe Gruppe wie den FTP-Server, jedoch als einen anderen Benutzer auszuführen.

Gilles 'SO - hör auf böse zu sein'
quelle
1
@Cthulhu: Der FTP-Server-Prozess gehört auch zu "all". UNIX-Berechtigungen werden jedoch nicht durchsucht. Es wird nur ein Triplet von Rechten berücksichtigt, und dies ist eine Pass / Fail-Prüfung. (Im Gegensatz zu Windows-ACLs, die bestanden / nicht bestanden / weiter ausgesehen haben)
MSalters
8

Die oktale Berechtigungsmaske von 004entspricht einer symbolischen Berechtigungsmaske. Dies u=,g=,o=rbedeutet, dass (u)serder Eigentümer der Datei diese nicht lesen oder darauf schreiben oder ausführen kann und andere Benutzer nicht dieselben Berechtigungen (g)roupwie der Eigentümer der Datei haben. Nur (o)therBenutzer, die weder Eigentümer noch Mitglied derselben Gruppe wie der Eigentümer sind, können die Datei lesen.

godlygeek
quelle
1
Hier ist UMASK 004 gemeint und keine Erlaubnis!
Afsin Toparlak
4
@AfsinToparlak: Nein, es ist eine explizite Erlaubnis . Siehe akzeptierte Antwort.
TripeHound
6

Ja, aber die Datei gehört dem Benutzer. Der Client selbst hat also die Berechtigung 0 (Benutzer) für die Datei und kann sie nicht lesen.

Sie können dies selbst testen:

echo TEST > myTestFile;
chmod 004 myTestFile;
cat myTestFile;
chmod 700 myTestFile;
cat myTestFile;

Der dritte Schritt löst einen Fehler aus.

Jodka Zitrone
quelle
Wenn also eine Datei hochgeladen wird, erhält nur dieser Benutzer die Leseberechtigung für die Datei und alle anderen erhalten 000? Hab ich recht? Können Sie bitte Ihre Antwort erweitern?
Aswin PJ
1
Ich habe das Buch gefunden und in diesem Kapitel geht es darum, ein öffentliches Verzeichnis zu sichern, das für anonyme FTP-Clients schreibbar ist. Jeder anonyme Client öffnet die Datei unter der gleichen UID wie jeder andere anonyme Client, sodass eine erstellte Datei von anonymen Benutzern erstellt werden kann, von anonymen Benutzern jedoch nicht gelesen werden kann. Es kann von jeder anderen Benutzer-ID auf dem System gelesen werden.
Jodka Lemon
@hope: Jede Ziffer in einer Erlaubnis-Oktalzeichenfolge steht für 4 Bits: set-id, read, write und exec, in dieser Reihenfolge. Somit bedeutet 7, dass alle Lese-, Schreib- und Ausführungsbits gesetzt sind. Die erste Ziffer ist die Erlaubnis des Besitzers usw. Es macht also keinen Sinn zu sagen, dass andere bekommen 000. Andere bekommen gerade 0. Gilles 'Antwort ist die beste Erklärung dafür, wie eine Berechtigungseinstellung 004tatsächlich funktioniert.
Peter Cordes
Der dritte Schritt ist das Schreiben, nicht das Lesen.
Hören Sie auf, Monica
@OrangeDog Sie haben recht. Ich habe es korrigiert.
Jodka Lemon
-1

Es scheint wahrscheinlicher zu sein, dass alle Berechtigungen von 004 maskiert werden, dh andere Benutzer können die Datei nicht lesen. Dies würde dazu dienen, die Datei (bis zu einem gewissen Grad) vor anderen Benutzern auf dem System zu schützen.

Nathan Ringo
quelle
Nein, wie andere bereits erklärt haben, legt der FTP-Server die Berechtigungen 004so fest , dass der Benutzer, der es hochgeladen hat, und alle anderen Benutzer von FTP (zumindest anonyme) erst dann auf die Datei zugreifen können, wenn sie überprüft wurde (wenn sie erneut berechtigt werden und wahrscheinlich verschoben / umbenannt an einen geeigneten Ort). Orte wie das WU-Archiv wurden in der fernen Vergangenheit häufig (fälschlicherweise) als Dateifreigabeseiten verwendet, wenn solche Dinge nicht eingerichtet wurden.
TripeHound