[gelöst] Standardrechte für USB / ext2-Partitionen

scuba

Neuer User
Mitglied seit
9 Sep 2008
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Ahoi,

wie kann ich die Standard-Dateirechte beim Anlegen einer Datei auf einer ext2-Partition ändern?

Normalerweise kann ich beim Mounten per fmask und dmask die Standard-Rechte ändern. Nur leider steht der Mount-Befehl in /etc/hotplug/run_mount . Das Script liegt im read-only Bereich und um das zu ändern, müsste ich ein neues Image bauen. Richtig?

Dann gibt es ja noch das umask. Nur leider scheint das freetz nicht zu kennen.

Gibt es einen Weg, den Standard für die Rechte beim Anlegen einer neuen Datei zur Laufzeit zu setzen, vielleicht auch noch boot resistent?
 
Zuletzt bearbeitet:
Vielleicht geht das über die ~/.profile
 
EXT2 als standard UNIX Dateisystem speichert für jede Datei und jedes Verzeichnis individuell Eigentümer und Zugriffsrechte ab.
Bei Dateisystemen, die das nicht tun, wie VFAT, besteht die Möglichkeit, statt dessen beim Mount-Befehl für alle Dateien und Verzeichnisse Zugriffsrechte und Eigentümer anzugeben. Bei richtigen UNIX-Dateisystemen sind solche Optionen nicht notwendig und auch nicht vorhanden.

Eine Möglichkeit, die Rechte von neu angelegten Dateien und Verzeichnissen zu beeinflussen, sind Default-ACLs auf Verzeichnisse. Da müßte man sehen, wieweit das vom verwendetet System unterstützt wird.

Und wenn Du schreibst, daß umask nicht unterstützt wird, wäre es interessant zu wissen, was genau Du Dir darunter vorstellst, denn ich gehe davon aus, daß umask funktioniert.
 
Er meint wahrscheinlich das "umask 0" in der run_mount
 
OK, ich hab mich wohl etwas missverständlich ausgedrückt. Entschuldigt bitte!
Den Satz, dass freetz umask nicht kennt, vergessen wir einfach. Natürlich kann ich in der shell eine umask setzen!

Hier nochmal genauer, worauf ich hinauswill:

Ich befinde mich in einer Shell im Dateisystem. Das ergibt per default folgendes:

Code:
/var/mod/root # umask
0022
/var/mod/root # touch tmp
/var/mod/root # ls -l
-rw-r--r--    1 root     root            0 Feb 20 20:18 tmp

Nun möchte ich standardmäßig auch schreiben für Gruppe und Welt aktivieren:

Code:
/var/mod/root # umask 0
/var/mod/root # umask
0000
/var/mod/root # touch tmp
/var/mod/root # ls -l
-rw-rw-rw-    1 root     root            0 Feb 20 20:19 tmp
/var/mod/root #

Soweit so gut!

Jetzt geht es aber um einen Dienst, sagen wir beispielsweise 'Apache'. Wenn der Dateien anlegt, dann scheint er sich danach zu richten, was in /etc/init.d/rc.S steht: umask 022. Weil das auch der default-Wert ist, wenn ich eine neue Shell öffne.

Wie kann ich nun diesem Dienst mitteilen, dass er bitte _immer_ umask 0 nehmen soll, ohne die rc.S ändern zu müssen?
 
Jeder Prozeß hat einen eigenen Wert für umask. Ein neuer Prozeß übernimmt den umask-Wert des startenden Prozesses.
Du mußt also dafür sorgen, daß der Wert von umask vom Apache-Prozeß auf den von Dir gewünschten Wert gesetzt wird.
Eine Änderung in rc.S ist nicht so geschickt, weil sich diese auf alle von rc.S gestarteten Prozesse auswirken würde. Besser ist eine Änderung in der rc-Datei, die den Apache startet.
 
Alles klar, vielen Dank!

Ein Start via
Code:
umask 0;/var/tmp/apache/apache -f /var/tmp/apache/conf/apache.conf
funktioniert prima im weiteren Verlauf. :)

Grüße

scuba
 
Kostenlos!

Statistik des Forums

Themen
248,878
Beiträge
2,303,775
Mitglieder
378,546
Neuestes Mitglied
Looki_Luzi