如何检查node.js脚本是否以管理员权限在linux上运行?

f3temu5u  于 2023-01-29  发布在  Linux
关注(0)|答案(1)|浏览(241)

我正在开发一个node.js脚本,该脚本使用@abandonware/noble扫描BLE通告。
平台:

  • 操作系统:Linux Mint 21.1
  • 内核:Linux 5.15.0 - 58-通用
  • 架构:x86 - 64
  • 节点. js版本19.0.4

当不使用sudo运行时,该脚本会导致segfault,我发现没有方法可以防止这种情况。noble documentation提到,如果你想以普通用户的身份进行蓝牙扫描,你需要设置权限:

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

但这并没有改变。
所以我想检查脚本是否以管理员权限运行。我尝试将process.getuid()写成here,但无论是否以sudo运行,总是返回1000
如何检查脚本是否使用sudo运行?

eqqqjvef

eqqqjvef1#

可以使用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权限运行。

相关问题