[英]How to check if node.js script runs with admin privileges on linux?
我正在開發一個 node.js 腳本,它使用@abandonware/noble
掃描 BLE 廣告。
平台:
該腳本在不使用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.