GNU/Linux >> Tutoriels Linux >  >> Linux

Est-ce une bonne pratique d'exécuter un démon sous un compte utilisateur non root ?

J'ai développé une application qui utilise NTP pour changer l'heure du réseau, pour synchroniser deux de mes ordinateurs.
Elle s'exécute en tant que root , puisque seul ce dernier est autorisé à changer l'heure et la date sous Linux (je suppose).

Maintenant, je veux l'exécuter en tant qu'utilisateur. Mais j'ai besoin d'accéder à l'heure.

  • Est-il recommandé d'exécuter un démon sous un compte utilisateur non root ?
  • Dois-je donner à mon application une capacité comme CAP_SYS_TIME ?
  • Cela n'introduit-il pas une faille de sécurité ?
  • Existe-t-il un meilleur moyen ?

Réponse acceptée :

Est-il recommandé d'exécuter un démon sous un compte utilisateur non root ?

Oui, et c'est courant. Par exemple, Apache démarre en tant que root, puis bifurque le nouveau processus en tant que www-data (par défaut).
Comme dit précédemment, si votre programme est piraté (ex :injection de code), l'attaquant n'obtiendra pas un accès root, mais sera limité aux privilèges que vous avez donnés à cet utilisateur spécifique.

Dois-je donner une "capacité" telle que "CAP_SYS_TIME" ?

C'est une bonne idée puisque vous évitez d'utiliser setuid , et limitez les autorisations à cette capacité très spécifique.

Dois-je utiliser une autre méthode qui serait considérée comme une "bonne pratique" ?

Vous pouvez augmenter la sécurité, par exemple :

  • Exécuter le service en tant qu'utilisateur non privilégié, sans shell.
  • Utilisez chroot pour verrouiller l'utilisateur dans son répertoire personnel.

Linux
  1. 4 façons de désactiver le compte racine sous Linux

  2. Autoriser les cronjobs à s'exécuter par pam même si le mot de passe de l'utilisateur a expiré

  3. Exécutez Docker en tant qu'utilisateur non root

  4. Comment exécuter sbt en tant que démon?

  5. Exécuter un script shell en tant qu'utilisateur différent

Comment exécuter Docker en tant qu'utilisateur non root sous Linux

Exécuter Podman sans racine en tant qu'utilisateur non root

Comment changer l'image de profil du compte ?

Installer Git avec un compte utilisateur non root

Exécuter le script bash en tant que démon

Comment ssh en tant qu'autre utilisateur