Seite 1 von 1

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

Verfasst: 14.06.2018 17:29:45
von atarixle
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.

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

Verfasst: 14.06.2018 19:04:27
von DeletedUserReAsG
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.

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

Verfasst: 14.06.2018 21:27:55
von atarixle
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?

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

Verfasst: 14.06.2018 21:37:06
von DeletedUserReAsG
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.

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

Verfasst: 14.06.2018 21:50:15
von Tintom
Anscheinend kann man bei ntfs3g User mappen, sodass ihre Rechte unter Linux beachtet werden: https://www.tuxera.com/community/ntfs-3 ... rmissions/

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

Verfasst: 04.07.2018 09:31:06
von atarixle
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.

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

Verfasst: 04.07.2018 09:50:11
von MSfree
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!

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

Verfasst: 04.07.2018 19:50:25
von atarixle
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.