Wrap sudo with optional password cache


A child_process.spawn but with sudo in between. The sudo password dialog is abstracted away so that the calling Node script can interact with the program that is run under sudo without worrying about it.

sudo(args, options)
  • args: An array of arguments to sudo. Can be both options (such as -v or -E) and the program to run. Example: ['ls'].

  • options: An optional object containing options. Recognized options are:

    • cachePassword: Boolean; whether to remember the password between invocations or not.

    • prompt: String; what to display to the user when the password is needed.

    • spawnOptions: Object; passed on directly to spawn. stdio or customFds will be overwritten.

var sudo = require('sudo');
var options = {
    cachePassword: true,
    prompt: 'Password, yo? ',
    spawnOptions: { /* other options for spawn */ }
var child = sudo([ 'ls', '-l', '/tmp' ], options);
child.stdout.on('data', function (data) {