umask für User zur Laufzeit setzen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
pgr
Beiträge: 35
Registriert: 05.05.2013 16:31:14

umask für User zur Laufzeit setzen

Beitrag von pgr » 22.01.2015 20:50:18

Ich betreibe den "aria2"-Download-Sever auf meinem Wheezy, lasse ihn auch unter einem speziellen No-Login-User "aria2" (:/bin/false) laufen. Dummerweise haben die erzeugten Download-Dateien nicht die passenden Rechte (d.h. Default: 022):

Code: Alles auswählen

-rw-r--r--  1 aria2  aria2      172730 Jan 22 20:28 testdatei.jpg
Ist der Befehl umask die richtige Wahl? Muß ich die umask irgendwie in das init-Skript reinquetschen? Meine Versuche mit "su" sind fehlgeschlagen.

Wer kann mir weiterhelfen?

Benutzeravatar
Inkodiktus
Beiträge: 702
Registriert: 15.08.2013 01:15:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: » host@user╺─╸[~]

Re: umask für User zur Laufzeit setzen

Beitrag von Inkodiktus » 27.01.2015 00:28:57

umask mit Nummer hier rein:
Für das ganze System:
/etc/profile

Für den User:
~/.profile

Pc restarten, sonst weiß ich nicht, wann es greift, vielleicht auch nach relog.
fertig :)

Sonst ist nicht ganz klar, was du möchtest :)
Wozu init-Script?

So weit ich noch weiß ist umask dazu da, bei der Erstellung von Dateien die richtigen Rechte zu verpassen.
Sonst ein chmod [option] datei genügts auch, wobei ich nicht verstehe, warum es mit root nicht geht???
Weiß nicht wie weit du mit Linux bist:
chmod +x datei für Ausführrechte, für Verzeichnisse auch!
chmod +r datei für Leserechte
usw.
kannst auch chmod 644 datei nehmen :D


Na gut, das verstehe ich auch nicht ganz:
No-Login-User "aria2" (:/bin/false)
Meine Sprachkenntnisse: nur deutsch
Mein Laptop: http://www.asus.com/Notebooks_Ultrabook ... ifications
Mein Debian: Stable + OpenBox
Mein Editor: Emacs
Meine Devise: Frei bleiben - so lange wie es geht : -)

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: umask für User zur Laufzeit setzen

Beitrag von Cae » 27.01.2015 04:08:16

Das Problem ist eigentlich recht klar umrissen, insofern verstehe ich meinen Vorpost nicht ganz...

Die Loesung heisst in der Tat umask, es ist aber zu beachten, dass ein Programm intern die umask oder den Datei-Modus selbst auch nach Belieben verstellen kann. Ich gehe davon aus, dass die (nur-lesbare) Angabe unter /proc/{PID}/fdinfo/{FD} eines Prozesses mit der PID {PID} unter flags: u.a. die umask fuer den entsprechenden file descriptor {FD} stehen hat. Daran sollten sich aktive Veraenderungen des Prozesses selbst nachvollziehen lassen. Alternativ kann man strace in der Form

Code: Alles auswählen

$ strace -fe execve,umask -o $(mktemp) /etc/init.d/...
bemuehen, welches dann unter /tmp/tmp.* alle gestarteten Unterprozesse und umask(2)-Syscalls loggt (Achtung, strace ist relativ teuer, also nur zum Debugging laufen lassen).

Falls das Programm keine vernuenftige Einstellmoeglichkeit bietet, waere ggf. ein nachtraegliches Anpassen des Modus' per Cronjob oder inotifywait-getriggert ein schneller Workarround. Viel sauberer, aber auch aufwaendiger waere das Umbiegen des umask-Calls per $LD_PRELOAD.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten