抱歉,我对linux了解不多,而且我总是在其他环境中开发,我用 ElectronJS 制作了一个跨平台应用程序,我需要使用该代码创建一个目录
let staticPath = "/opt/pcapp/resources/monitor";
if (!fs.existsSync(staticPath)) {
fs.mkdirSync(staticPath);
}
在 Windows 和 Mac 中,它的工作方式就像一个魅力,但在 Linux - Ubuntu 上,我安装了该应用程序,由于所需的 super 用户权限,我收到此错误。
将要处理该应用程序的用户将没有 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/