簡體   English   中英

如何檢查 node.js 腳本是否在 linux 上以管理員權限運行?

[英]How to check if node.js script runs with admin privileges on linux?

我正在開發一個 node.js 腳本,它使用@abandonware/noble掃描 BLE 廣告。

平台:

  • 操作系統:Linux Mint 21.1
  • Kernel:Linux 5.15.0-58-通用
  • 架構:x86-64
  • node.js 版本 19.0.4

該腳本在不使用sudo運行時會導致段錯誤,我發現沒有辦法阻止這種情況。 noble 文檔提到,如果您想以普通用戶身份進行藍牙掃描,則需要設置權限:

sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)

但這並沒有改變。

所以我想檢查腳本是否以管理員權限運行。 我嘗試使用此處所寫的process.getuid()但無論是否使用sudo運行,它總是返回1000

如何檢查腳本是否使用sudo運行?

您可以使用os.userInfo() .uid 方法來檢查當前用戶的用戶 ID。

const os = require('os');
const user = os.userInfo().uid;
if (user === 0) {
  console.log('Running with root privileges');
} else {
  console.log('Not running with root privileges');
}

請記住,腳本必須使用 sudo 執行才能以 root 權限運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM