Detect root/admin/sudo and execute commands as it if available
npm install admina> Detect root/admin/sudo and execute commands as it if available
- Install
- Usage
- API
- isAdmin function
- hasSudo function
- isRoot function
- isSudo function
- prependSudo function
- defaultExecOptions variable: execa.SyncOptions
- execRootSync function
- execRoot function
- isAdminWindows variable
- isAdminPosix variable
- isAdmin function
- grantUserWriteAccess function
- 🤝 Contributing
``sh`
npm install --save admina
admina is tiny and treeshakable.
Automatic (depends on your build system)
`js`
import * as admina from "admina"
Node
`js`
import * as admina from "admina/dist/index.node.mjs"
Node CJS
`js`
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
`js
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 spawnstring[]
- args () - The command argumentsSyncOptions
- execOptions () - The options passed to execa. 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 spawnstring[]
- args () - The command argumentsOptions
- execOptions () - The options passed to execa. Defaults to { stdio: "inherit", shell: true }
returns: ExecaChildProcess
Check if the process is running as administrator on Windows.
`js
import { isAdminWindows } from "admina"
console.log(await isAdminWindows())
//=> false
`
Detect if the process has root privilege on Posix.
`js
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
`js
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.