elevated
Version:
Check if script is executed with elevated permissions: using sudo on Linux or administrator rights on Windows
111 lines (73 loc) • 2.48 kB
Markdown
[](https://www.npmjs.com/package/elevated)
[](https://github.com/cedrictailly/elevated/blob/main/LICENSE)
[](https://www.npmjs.com/package/elevated)
Check if a script is executed with elevated permissions:
- Using SUDO on Linux
- From an administrator account on Windows
A lightweight utility to verify and enforce elevated privileges for Node.js applications when you need to perform operations that require administrative rights.
| Platform | Support |
|----------|---------|
| Windows | ✅ |
| Linux | ✅ |
| macOS | ❌ |
```bash
npm install elevated
yarn add elevated
pnpm add elevated
```
The `check` method returns a boolean indicating if we are elevated or not.
```javascript
console.log(
require('elevated').check() ? 'elevated' : 'unelevated'
);
```
Using `required` function, an exception is thrown with a platform specific message if the runtime is not elevated.
```javascript
require('elevated').required();
```
Customize the error message thrown by `required()` when the script is not running with elevated permissions...
```javascript
require('elevated').required('Please run as administrator');
```
...or by setting-up the default one.
```javascript
require('elevated').defaultMessage = 'Please run as administrator';
```
```javascript
import { check, required } from 'elevated';
// Check if elevated
console.log(check() ? 'elevated' : 'unelevated');
// Require elevated permissions
try {
required();
console.log('Script is running with elevated permissions');
} catch (error) {
console.error('Error:', error.message);
}
```
```javascript
import elevated from 'elevated';
console.log(elevated.check() ? 'elevated' : 'unelevated');
(...)
```
This package includes tests for both standard and elevated permission contexts:
```bash
npm test
```
Contributions, issues and feature requests are welcome. Feel free to check the [issues page](https://github.com/cedrictailly/elevated/issues) if you want to contribute.
Pull requests for macOS support would be particularly appreciated!