Skip to main content
Deno 2 is finally here 🎉️
Learn more

deno-sudo

🦕 #

Spawns a new deno process, using the system’s sudo command to have that spawned process gain privileged permissions.

The sudo executable will be connected to the console, so it can ask the user for their password.

When the sudo process has achieved elevated privileges, the main original deno process uses the sudo deno process to run any commands requiring root privileges. It does this by communicating with that process, asking it to run system commands on its behalf.

The benefit of keeping the privileged process around, and sending it commands to run as root, is that it needs to ask the user only once for their password. Even if long time passes between commands, which would otherwise time out the sudo elevation and prompt the user to re-enter their password. This is useful for e.g. scripting installation of operating systems and their components.

After initial instantiation, the API supplied is a single import() function, which behaves much like the built-in dynamic import() statement. However, instead of actually importing the module, it is imported in a separate privileged deno process. The object returned to the caller is a Proxy which delegates everything to the imported module in the privileged process.