Linux, выполняйте операции, которые требуют привилегий суперпользователя с Electronjs - PullRequest
0 голосов
/ 06 декабря 2018

Извините, но я не знаю много о 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 голосов
/ 06 декабря 2018

У меня есть два варианта:

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’

Если это недостаточно детально, прочтите о ACL Linux.

Надеюсь, это поможет.

...