GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ist es empfehlenswert, einen Daemon unter einem Nicht-Root-Benutzerkonto auszuführen?

Ich habe eine Anwendung entwickelt, die NTP verwendet, um die Netzwerkzeit zu ändern und zwei meiner Computer zu synchronisieren.
Sie läuft als root , da nur letzterer die Uhrzeit und das Datum unter Linux ändern darf (glaube ich).

Jetzt möchte ich es als Benutzer ausführen. Aber ich muss auf die Uhrzeit zugreifen.

  • Ist es empfehlenswert, einen Daemon unter einem Nicht-Root-Benutzerkonto auszuführen?
  • Soll ich meiner Anwendung eine Fähigkeit geben wie CAP_SYS_TIME ?
  • Führt es nicht zu einer Sicherheitslücke?
  • Gibt es einen besseren Weg?

Akzeptierte Antwort:

Ist es empfehlenswert, einen Daemon unter einem Nicht-Root-Benutzerkonto auszuführen?

Ja, und das ist üblich. Zum Beispiel startet Apache als root und verzweigt dann einen neuen Prozess als www-data (standardmäßig).
Wie bereits gesagt, wenn Ihr Programm gehackt wird (z. B. Code-Injektion), erhält der Angreifer keinen Root-Zugriff, sondern wird auf die Privilegien beschränkt, die Sie diesem bestimmten Benutzer gegeben haben.

Soll ich eine „Fähigkeit“ wie „CAP_SYS_TIME“ angeben?

Dies ist eine gute Idee, da Sie die Verwendung von setuid vermeiden , und beschränken Sie die Berechtigungen auf diese sehr spezifische Funktion.

Soll ich dafür eine andere Methode verwenden, die als „gute Praxis“ angesehen wird?

Sie können die Sicherheit erhöhen, zum Beispiel:

  • Führen Sie den Dienst als unprivilegierter Benutzer ohne Shell aus.
  • Verwenden Sie chroot um den Benutzer in seinem Home-Verzeichnis zu sperren.

Linux
  1. Standardmäßiger Nicht-Root-Benutzer von Kali

  2. Führen Sie Docker als Nicht-Root-Benutzer aus

  3. Wie führe ich sbt als Daemon aus?

  4. Wie man als anderer Benutzer ssh

  5. Führen Sie ein Shell-Skript als ein anderer Benutzer aus

So führen Sie Docker als Nicht-Root-Benutzer in Linux aus

Rootless Podman als Nicht-Root-Benutzer ausführen

Eine Einführung in die Überwachung von Linux-Benutzerkonten

Virtualisierungslösungen unter Openbsd?

Wie ändere ich das Profilbild des Kontos?

Führen Sie das Bash-Skript als Daemon aus