GNU/Linux >> Znalost Linux >  >> Linux

Je dobrou praxí spouštět démona pod uživatelským účtem bez oprávnění root?

Vyvinul jsem aplikaci, která používá NTP ke změně síťového času, k synchronizaci dvou mých počítačů.
Běží jako root , protože pouze druhý jmenovaný může v Linuxu měnit čas a datum (myslím).

Nyní jej chci spustit jako uživatel. Ale musím mít přístup k času.

  • Je dobrým postupem spouštět démona pod uživatelským účtem jiného uživatele než root?
  • Dám své aplikaci schopnost? například CAP_SYS_TIME ?
  • Nepředstavuje chybu zabezpečení?
  • Existuje lepší způsob?

Přijatá odpověď:

Je dobrým zvykem spouštět démona pod uživatelským účtem jiného uživatele než root?

Ano, a to je běžné. Například Apache se spustí jako root a poté rozvětví nový proces jako www-data (ve výchozím nastavení).
Jak již bylo řečeno, pokud je váš program napaden hackery (např. vložení kódu), útočník nezíská root přístup, ale bude omezen na oprávnění, která jste tomuto konkrétnímu uživateli udělili.

Mám dát „Schopnost“ jako „CAP_SYS_TIME“?

Je to dobrý nápad, protože se vyhnete použití setuid a omezit oprávnění na tuto velmi specifickou funkci.

Mám k tomu použít jiný způsob, který by byl považován za „dobrý postup“?

Můžete zvýšit zabezpečení, například:

  • Spusťte službu jako neprivilegovaný uživatel bez prostředí.
  • Použijte chroot k uzamčení uživatele v jeho domovském adresáři.

Linux
  1. Kali výchozí uživatel bez root

  2. Jak spustit rsyslog jako uživatel bez root v CentOS/RHEL 7

  3. Uživatelský účet „systemd-bus-proxy“

  1. Povolit cronjobs spouštět pam, i když vypršela platnost hesla uživatele

  2. Jak používat sudo k tomu, aby uživatel bez oprávnění root mohl spustit konkrétní příkaz

  3. Instalace Git pomocí jiného uživatelského účtu než root

  1. Spusťte bash skript jako démona

  2. Jak ssh jako jiný uživatel

  3. Spusťte skript prostředí jako jiný uživatel