【问题标题】:Linux, execute operations that needs superuser privilege with Electronjs - NodejsLinux,使用 Electronjs 执行需要超级用户权限的操作 - Nodejs
【发布时间】:2018-12-07 01:33:32
【问题描述】:

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

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

在 Windows 和 Mac 中,它就像一个魅力,但在 Linux - Ubuntu 上,我安装了该应用程序,但由于所需的超级用户权限而出现此错误。

要处理应用程序的用户将没有超级用户权限

现在我想知道是否有一种方法可以在没有 SUDO 或其他东西。

【问题讨论】:

  • 如果任何应用程序可以将自己提升到某些不允许的特权,那就是安全问题。应用程序必须在正确的权限下运行才能完成工作,即您提到的 sudo。

标签: node.js linux ubuntu electron


【解决方案1】:

你有两个我能想到的选择。

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

现在在文件夹中创建的任何 new 文件都将拥有一个组 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。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-09-01
    • 2020-05-03
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2015-09-27
    • 2013-09-04
    相关资源
    最近更新 更多