Detect root/admin/sudo and execute commands as it if available
npm install --save admina
admina
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())
//=> false
Detect 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())
//=> false
Detect if the process has root privilege on Posix.
import { isAdminPosix } from "admina"
console.log(isAdminPosix())
//=> false
Detect 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())
//=> false
Give 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.