Socket
Book a DemoInstallSign in
Socket

admina

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

admina

Detect root/admin/sudo and execute commands as it if available

1.0.1
latest
Source
npmnpm
Version published
Weekly downloads
90
-41.18%
Maintainers
1
Weekly downloads
 
Created
Source

admina

CI Version License: Apache--2.0

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 to execa. 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 to execa. 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.

Keywords

sudo

FAQs

Package last updated on 22 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.