GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit umask pro systémového uživatele?

Existují tři běžné způsoby, jak nastavit umask uživatele.

  1. Nastavte UMASK v /etc/login.defs
  2. Přidejte pam_umask.so do vaší konfigurace PAM v /etc/pam.d
  3. Nastavte jej ve spouštěcích souborech shellu, např. /etc/profile

V tomto ohledu není mezi uživateli systému a běžnými uživateli žádný rozdíl.

Ale předpokládám, že se pokoušíte spustit démona s vlastním umask?

Problém je v tom, že všechny výše uvedené možnosti nastanou, když se uživatel přihlásí. Pokud spouštíte démona, nikdy se nepřihlásí. Spouští ho init, pak se buď spustí jako root, nebo zavolá setuid spustit jako systémový uživatel, kterého určíte.

Vaše hlavní možnosti jsou:

  1. zadejte umask ve vašem init skriptu (proveďte grep umask /etc/init.d/* pro příklad)
  2. nakonfigurujte init pro spuštění programu s vlastním umask (systemd.exec upstart umask)
  3. pokud používáte start-stop-daemon , předejte možnost umask
  4. upravte samotný program tak, aby volal funkci umask nebo systémové volání

Systémoví uživatelé se od „normálních“ liší třemi způsoby:vypršením platnosti hesla, domovským adresářem (uživatelé systému jej nemají) a UID (uživatelé systému jsou obvykle pod určitou libovolnou hranicí).

V obecném případě máte téměř úplně smůlu. K nastavení umask můžete použít PAM, ale PAM vybírá chování na základě jiných věcí, než jsou tyto tři rozdíly.

Jinými slovy, nemůžete přimět PAM, aby rozlišoval mezi „systémovými“ a „nesystémovými“ uživateli. Zbývají vám dvě možnosti:

  • Buď použijete PAM k nastavení umask pro všechny (např. check in /etc/login.defs ), pak explicitně nastavte umask pro nesystémové uživatele v /etc/bash.bashrc (nebo podobné);

  • Nebo si k tomu napište svůj vlastní modul PAM. Myslím, že by to mnoho lidí uvítalo, protože nastavení umasku je běžný požadavek.

Berte prosím tuto odpověď s velkou špetkou soli. Tento druh požadavků je docela běžný a nebyl bych překvapen, kdyby nyní existoval lepší/správný způsob.


Linux
  1. Nastavit Umask pro souborový systém připojený k Sshfs?

  2. Jak nastavit zástupce na ploše pro cPanel

  3. CentOS / RHEL :Jak nastavit chroot jail pro vsftp pouze pro konkrétní uživatele

  1. Jak nastavit ID procesu v Linuxu pro konkrétní program

  2. Jak nainstalovat modul pro všechny uživatele s pip na linux?

  3. Jak nastavím výchozí přezdívku pro nová připojení irssi?

  1. Jak nastavit SPF pro přidané ověřování e-mailů

  2. Jak nastavit výchozí nastavení plochy pro nové uživatele?

  3. Jak nastavit proměnné cesty pro všechny uživatele na serveru?