Detect root/admin/sudo and execute commands as it if available
npm install --save adminaadmina is tiny and treeshakable.
Automatic (depends on your build system)
import * as admina from "admina"Node
import * as admina from "admina/dist/index.node.mjs"Node CJS
const admina = require("admina/dist/index.node.cjs")admina supports the following functions:
returns: Promise
Detect if sudo is available
returns: boolean
Detect if the process has root privilege on Posix.
returns: boolean
import { isRoot } from "admina"
console.log(isRoot())
//=> falseDetect if sudo is available and the user has root privileges
returns: boolean
Prepend sudo to the command if sudo is available
Parameters:
- command (
string)
returns: string
Default exec options { stdio: "inherit", shell: true }
Execute a command as root if sudo is available. Otherwise executes the command normally without sudo.
Parameters:
- program (
string) - The program to spawn - args (
string[]) - The command arguments - execOptions (
SyncOptions<string>) - The options passed toexeca. Defaults to{ stdio: "inherit", shell: true }
returns: ExecaSyncReturnValue
Asynchronously execute a command as root if sudo is available. Otherwise executes the command normally without sudo.
Parameters:
- program (
string) - The program to spawn - args (
string[]) - The command arguments - execOptions (
Options<string>) - The options passed toexeca. Defaults to{ stdio: "inherit", shell: true }
returns: ExecaChildProcess
Check if the process is running as administrator on Windows.
import { isAdminWindows } from "admina"
console.log(await isAdminWindows())
//=> falseDetect if the process has root privilege on Posix.
import { isAdminPosix } from "admina"
console.log(isAdminPosix())
//=> falseDetect if the code is running as admin/root
On Windows, it checks for admin access, and on Posix, it checks for root access
returns: boolean | Promise
import { isAdmin } from "admina"
console.log(isAdmin())
//=> falseGive the user access to the given path (and its sub-directories if a directory). It changes the owner to the SUDO_USER. This allows the user to use the folder without sudo
Parameters:
- path (
string) - The path to give the user access to
returns: Promise
You can sponsor my work here:
https://github.com/sponsors/aminya
Pull requests, issues and feature requests are welcome. See the Contributing guide.