2009-05-26 4 views
6

J'ai créé un programme serveur qui sera démarré en tant que root. Après le démarrage, je souhaite abandonner les privilèges à un autre utilisateur. Comment puis-je le faire en toute sécurité?Comment puis-je supprimer des privilèges en Perl?

+0

Pas si bien avec Linux, mais peut-être engendrer un nouveau processus en cours d'exécution comme «personne»? –

Répondre

9
+0

J'ai utilisé ce module. Cela semble fonctionner. Je vous remercie. –

4

Vous n'avez pas vraiment besoin d'un module, bien que celui relié par Benji York soit plutôt joli.

Il suffit de paramétrer l'UID via $< et $>. Voir perlvar pour plus d'informations à ce sujet. Vous pouvez également définir le GID de cette manière en utilisant $( et $); Notez que vous devez définir $) = "$target_gid $target_gid" si vous souhaitez supprimer des groupes supplémentaires. Ne pas oublier de tester pour le succès après.

+4

N'oubliez pas $ (et $). –

+0

bon point. J'imaginais qu'il utiliserait simplement le module drop priv, et il n'y a vraiment aucune raison de ne pas le faire, ou j'aurais donné un exemple. Cela ressemblerait beaucoup à la source du module. – jettero

Questions connexes