admina
v1.0.1
Published
Detect root/admin/sudo and execute commands as it if available
Downloads
162
Maintainers
Readme
Detect root/admin/sudo and execute commands as it if available
Install
npm install --save admina
admina
is tiny and treeshakable.
Usage
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")
API
admina
supports the following functions:
isAdmin
(function)
returns: Promise
hasSudo
(function)
Detect if sudo is available
returns: boolean
isRoot
(function)
Detect if the process has root privilege on Posix.
returns: boolean
import { isRoot } from "admina"
console.log(isRoot())
//=> false
isSudo
(function)
Detect if sudo is available and the user has root privileges
returns: boolean
prependSudo
(function)
Prepend sudo
to the command if sudo is available
Parameters:
- command (
string
)
returns: string
defaultExecOptions
(variable: execa.SyncOptions)
Default exec options { stdio: "inherit", shell: true }
execRootSync
(function)
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
execRoot
(function)
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
isAdminWindows
(variable)
Check if the process is running as administrator on Windows.
import { isAdminWindows } from "admina"
console.log(await isAdminWindows())
//=> false
isAdminPosix
(variable)
Detect if the process has root privilege on Posix.
import { isAdminPosix } from "admina"
console.log(isAdminPosix())
//=> false
isAdmin
(function)
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
grantUserWriteAccess
(function)
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
🤝 Contributing
You can sponsor my work here:
https://github.com/sponsors/aminya
Pull requests, issues and feature requests are welcome. See the Contributing guide.