Parfois, l'utilisateur initie une action dans mon application Node qui nécessite des privilèges d'administrateur ou de racine. Plutôt que de demander aux utilisateurs d'exécuter l'application avec les privilèges sudo
J'aimerais demander à l'utilisateur son mot de passe et escalade des privilèges du processus Node déjà en cours d'exécution.
Je ne suis pas intéressé par le fait que mon application exécute un processus enfant avec sudo
(comme c'est déjà le cas avec sudo-prompt ). Je veux que le processus de nœud lui-même obtienne les privilèges de Root après avoir été démarré par un utilisateur non-Root sans que le processus de nœud ne puisse être démarré par un utilisateur non-Root. sudo
.
Un exemple d'application qui affiche un comportement qui illustre le problème :
var process = require('process');
var http = require('http');
var server = http.createServer(...);
// Several steps here that are unsafe to run as root
promptUserForAdminPassword();
server.listen(80); // Fails, needs to be root
Je voudrais écrire la fonction promptUserForAdminPassword()
qui demandera à l'utilisateur son mot de passe, escaladant ainsi les privilèges de Node afin qu'il puisse exécuter les opérations suivantes server.listen(80)
avec les privilèges de root, mais exécutez tout ce qui précède avec les privilèges d'utilisateur.