Linux,使用Electronjs执行需要超级用户特权的操作-Node.js

时间:2018-12-06 17:08:52

标签: node.js linux ubuntu electron

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

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

在Windows和Mac中,它像超级按钮一样工作,但是在Linux-Ubuntu上,我安装了该应用程序,由于需要超级用户权限,因此出现此错误。 enter image description here

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

现在,我想知道是否可以在不使用的情况下授予在应用程序工作目录 / opt / pcapp / resources / monitor 中创建,更新和删除某些文件和目录的权限的方法> SUDO 或其他内容。

1 个答案:

答案 0 :(得分:1)

我可以想到两种选择。

1)ACL,将花费一些学习时间。 2)简单的权限和组,可以很容易地完成。

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

# 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

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

$ 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

现在,在文件夹中创建的所有文件将具有一个mygroup组。您将不得不更改现有的文件和文件夹。

作为用户2

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

作为用户1

import pandas as pd
df=pd.read_excel("/home/arrow/PANDAS/IPL.xls")
print(df)
df.all()
df.info()
#Task1
df.shape
df.Year.value_counts()
df.Winning_Team.value_counts()
len(df[df['Winning_Team']=="Chasing"]) 
len(df[df['Winning_Team']=="FirstBatting"]) 
len(df[df['Winning_Team']=="Match Tied"]) 
bf_won=[]
tc_won=[]
tied=[]
total=[]
g=df.groupby('Year')
for yr,data_df in g:
    print(df[df.Year==yr])

如果这还不够详细,请阅读有关Linux ACL的信息。

希望这会有所帮助。