node.js - Linux,使用 Electronjs - Nodejs 执行需要 super 用户权限的操作

标签 node.js linux ubuntu electron

抱歉,我对linux了解不多,而且我总是在其他环境中开发,我用 ElectronJS 制作了一个跨平台应用程序,我需要使用该代码创建一个目录

 let staticPath = "/opt/pcapp/resources/monitor";
 if (!fs.existsSync(staticPath)) {
       fs.mkdirSync(staticPath);
 }

在 Windows 和 Mac 中,它的工作方式就像一个魅力,但在 Linux - Ubuntu 上,我安装了该应用程序,由于所需的 super 用户权限,我收到此错误。 enter image description here

将要处理该应用程序的用户将没有 super 用户权限

现在我想知道是否有一种方法可以授予在应用程序工作目录/opt/pcapp/resources/monitor中创建、更新和删除某些文件和目录的权限,而无需SUDO或其他内容。

最佳答案

我能想到你有两个选择。

1) ACL 需要一些学习曲线。 2)简单的权限和组,可以很容易地完成。

我创建了一个组 mygroup 并向其中添加了几个用户。

# groupadd mygroup
# usermod -G mygroup user1
# usermod -G mygroup user2

然后,我更改您希望用户有权访问的文件夹的权限和组:

# chmod 02770  /opt/pcapp/resourcees/monitor
# chgrp mygroup /opt/pcapp/resourcees/monitor

您现在应该看到以下内容:

# ls -ld /opt/pcapp/resourcees/monitor
drwxrws---. 4 root mygroup 4096 Dec  6 17:23 /opt/pcapp/resourcees/monitor

现在,在该文件夹中创建的任何文件都将拥有一个组 mygroup。您必须更改现有文件和文件夹。

作为用户2

$ touch /opt/pcapp/resourcees/monitor/testfile1
$ ls -ld /opt/pcapp/resourcees/monitor/testfile1
-rw-rw-r--. 1 user2 mygroup 0 Dec  6 17:29 /opt/pcapp/resourcees/monitor/testfile1

作为用户1

$ rm -v /opt/pcapp/resourcees/monitor/testfile1 
removed ‘/opt/pcapp/resourcees/monitor/testfile1’

如果这还不够详细,请阅读 Linux ACL。

希望这有帮助。

关于node.js - Linux,使用 Electronjs - Nodejs 执行需要 super 用户权限的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53656462/

相关文章:

node.js - 与 Docker 的套接字连接最初成功然后失败

javascript - 时间戳无法从日期构造函数正确转换

linux - 将 Postgresql 更新到较新版本会破坏旧代码

linux - ssh 协议(protocol)差异,显然在 ssh 6.x 和 5.x 之间

java - Tomcat 托管的 Web 应用程序链接在 Linux 中不起作用

linux - bash - 命令行中的for循环

python - 用户 Crontab + Python + 随机壁纸 = 不工作?

node.js - 在 Mongoose 中按日期和时间排序?

node.js - 错误 : Cannot find module 'pug'

ubuntu - 找不到包 gnuradio,ubuntu 12.04