2017-09-14 3 views
0

J'ai un programme qui ne devrait pas être exécuté en tant que root car il fait des choses basées sur le nom de l'utilisateur entre autres choses. Cependant, il est possible que j'aie besoin d'écrire un fichier qui est (et devrait être) juste inscriptible en tant que root.Comment écrire un fichier en tant que root dans un programme qui n'est pas exécuté en tant que root?

Ce que je pouvais faire, mais préférablement pas, est d'écrire le fichier dans un fichier temporaire, puis (system "sudo mv /tmp/myfile /destination/myfile"). Cela demanderait sudo le mot de passe, déplacer le fichier en tant que root, puis le programme continuerait à fonctionner en tant qu'utilisateur normal. Si l'utilisateur ne peut pas sudo, il ne devrait pas utiliser le programme, cela n'a donc pas vraiment d'importance.

Je voudrais juste être capable d'écrire le fichier du programme sans avoir de fichiers temporaires cependant, est-il possible de le faire?

Répondre