gelöst: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
atarixle
Beiträge: 341
Registriert: 20.02.2006 19:30:37

gelöst: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von atarixle » 14.06.2018 17:29:45

Hallo,

ich habe eine externe NTFS-formatierte Festplatte gemountet (NTFS, weil sie auch als externe HDD an Windows und Mac verwendet werden können soll), auf die zwei normale User Vollzugriff (lesen/schreiben) haben sollen.

Der User www-data, also der Apache Webserver, soll nur lesend Zugriff erhalten.

Wie könnte ich die Rechte vergeben?

Die Platte mit 750 zu mounten geht hier nicht, da dann nur ein User Vollzugriff hat (es kann nur einen Besitzer geben).
www-data in die Vollzugriff-Gruppe aufzunehmen und das Laufwerk mit 770 birgt das Risiko, dass, wenn ich mich in PHP mal vertue, die Daten auf der Platte in Gefahr sein könnten (durch Programmiertfehler oder gar "Angriff").

775 will ich auch nicht machen, denn ich mag "Fremden" den Zugriff auf die Platte lieber komplett verweigern.
Zuletzt geändert von atarixle am 05.07.2018 11:25:03, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von DeletedUserReAsG » 14.06.2018 19:04:27

atarixle hat geschrieben: ↑ zum Beitrag ↑
14.06.2018 17:29:45
ich habe eine externe NTFS-formatierte Festplatte
… und damit hat sich der ganze Rest eigentlich auch schon erledigt. Bei dem FS gibt’s weder Unix-Rechte, noch MAC/ACL-Kram, den man unter Linux sinnvoll nutzen könnte.

atarixle
Beiträge: 341
Registriert: 20.02.2006 19:30:37

Re: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von atarixle » 14.06.2018 21:27:55

Dass die NTFS-Platte keine Linux-Rechte speichern kann, weiß ich auch selber. Dennoch kann ich diese mit User-Rechten in der fstab mounten.

Könnte ich nicht mit setfacl den zwei Usern schreib/lese und dem www-data nur Leserechte geben?
Zuletzt geändert von atarixle am 14.06.2018 21:40:01, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von DeletedUserReAsG » 14.06.2018 21:37:06

Probier’s halt. Normale Verzeichnisrechte werden nicht vererbt; wie sich das mit ACL verhält, weiß zumindest ich nicht. Ich weiß nur, dass innerhalb des Dateisystems selbst weder Unixrechte, noch ACL funktionieren können.

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von Tintom » 14.06.2018 21:50:15

Anscheinend kann man bei ntfs3g User mappen, sodass ihre Rechte unter Linux beachtet werden: https://www.tuxera.com/community/ntfs-3 ... rmissions/

atarixle
Beiträge: 341
Registriert: 20.02.2006 19:30:37

Re: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von atarixle » 04.07.2018 09:31:06

Ich will ja gar keine Rechte vererben oder mappen.

Das gesamte Laufwerk soll sich gleich verhalten.

Man könnte auch sagen, ich suche die Möglichkeit, ein lokales (nicht gemountetes) Verzeichnis oder eine Datei rw für zwei User und r für www-data und - für alle anderen einzustellen. Lassen wir die NTFS-Geschichte also mal außen vor.

Das Problem ist, dass ich zwei Usern rw geben will, ich das aber mit rw- r-- --- eben nur einem User zur Verfügung stellen kann.
Damit der zweite User rw bekommt, muss ich ja schon rw- rw- --- machen, weil beide in der gleichen Gruppe sind. Dann hat aber www-data (ebenfalls in der rw-Gruppe des Zielverzeichnis) ebenfalls rw, was ich nicht will. Und alle anderen sollten gar nicht lesen dürfen, weshalb ich am Ende --- lassen muss.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von MSfree » 04.07.2018 09:50:11

atarixle hat geschrieben: ↑ zum Beitrag ↑
04.07.2018 09:31:06
Man könnte auch sagen, ich suche die Möglichkeit, ein lokales (nicht gemountetes) Verzeichnis oder eine Datei rw für zwei User und r für www-data und - für alle anderen einzustellen. Lassen wir die NTFS-Geschichte also mal außen vor.
OK, dann nennen wir den ersten User Fritz und den zweiten User Susi.

Erzeuge eine (neue) Benutzergruppe, z.b mit dem Namen "Nutzer"

Die Dateien in dem besagten Verzeichnis änderst du mit

Code: Alles auswählen

chown -R Fritz.Nutzer /Verzeichnisname
oder

Code: Alles auswählen

chown -R Susi.Nutzer /Verzeichnisname
oder auch teilweise für Susi und Fritz.
Dann gibst du den Dateien und Unterverzeichnissen noch die Rechte rwrw-r
Für Verzeichnsse:

Code: Alles auswählen

find /Verzeichnisname -type d -exec chmod 775 {} \;
Für Dateien

Code: Alles auswählen

find /Verzeichnisname -type f -exec chmod 664 {} \;
Bitte gebe niemals normalen Dateien Executerechte (7 oder 5)! Die beiden chmod-Befehle oben sind mit Bedacht für Verzeichnisse und Dateien unterschiedlich. Versehentlich mit Executerechten ausgestattete Dateien können zu einer Sicherheitslücke werden.

Dadurch dürfen die Benutzer (hier Susi oder Fritz) und alle, die zur Gruppe Nutzer gehören, die Dateien bearbeiten, der Rest der Welt darf nur lesen. Da www-data zum Rest der Welt gehört, hat der hier, ohne spezifische Erwähnug im Dateisystem automatisch nur Leserechte.

Das hier beschriebene Vorgehen läßt sich nicht auf NTFS oder FAT abbilden!

atarixle
Beiträge: 341
Registriert: 20.02.2006 19:30:37

Re: zwei User sollen lesen/schreiben, aber www-data nur lesen können

Beitrag von atarixle » 04.07.2018 19:50:25

Den Rest der Welt möchte ich aber nicht lesen lassen.

Hmm ... geht das, wenn ich stattdessen www-data als Besitzer und Fritz und Susi in die Gruppe packe und 570 bzw. 460 vergebe (also r-- rw- ---). Oder kann der Besitzer dann automatisch lesen und schreiben? ... mal versuchen ...

EDIT: es geht!

Folgende mount-Optionen habe ich angegeben:

/dev/sda2 /mnt/extHD1 ntfs-3g rw,async,users,uid=www-data,gid=exthdrw,umask=207 0 3

Ich habe den Spieß umgedreht: ein Besitzer (www-data) darf lesen, aber nicht schreiben (getestet mit sudo -u www-data mkdir test ...).

Die Mitglieder der Gruppe dürfen lesen und schreiben.

Die Dateien haben allesamt nun die Rechte r-- rw- ---.

PS: das mit dem Execute-Bit nur für Verzeichnisse geht, wenn ich anschließend noch fmask=111 hinzufüge.

Antworten