Как получить привилегию sudo для программы в виртуальной среде conda?

Как и в случае с заголовком, как я могу запустить программу, установленную в среде conda, с привилегиями sudo?

Этот поток ( sudo: conda: command not found ) упоминается, что командам conda не может быть предоставлена ​​привилегия суперпользователя. Но мне нужно, чтобы этой конкретной программе был предоставлен полный доступ для записи и редактирования. Я попытался изменить разрешение соответствующей папки / программы, но каждый раз она автоматически сбрасывается обратно на разрешение «только доступ».

Есть идеи, как я могу обойти эту проблему?

0
задан 6 August 2020 в 12:03

1 ответ

Но мне нужно, чтобы этой конкретной программе был предоставлен полный доступ на запись и редактирование.

Нет, у вас нет. Вам нужен доступ на запись и редактирование к определенному месту для вашего conda для хранения файла, чтобы можно было запустить действие. Conda по умолчанию устанавливается в вашем доме с вашим пользователем в качестве пользователя и группы, так что это место уже создано для вас. Это все, что вам нужно в отношении разрешений для conda. Все остальное является проблемой безопасности.

Все остальные действия, которые вам нужно сделать, должны выполняться из сценария в вашей системе, отключенной от среды conda.

Очень простой пример:

  1. из conda вы создаете pid-файл в ваш дом conda (/home/user/.conda/pid). Вы можете использовать их для хранения данных в этом файле, который вы хотите обработать.
  2. вы создаете службу systemd, которая сканирует новые файлы pid, добавленные в систему.
  3. служба systemd запускает сценарий (от имени пользователя root), который сканирует файл pid и выполняет необходимые действия. Имейте в виду, что это также может создать новый файл для conda, который будет содержать результат этого.

2 и 3 также могут быть заданием cron (через crontab или / etc / crontab) или наблюдателем за каталогами (inotify или с Сторожевой пес Python).

2
ответ дан 11 August 2020 в 20:09

Другие вопросы по тегам:

Похожие вопросы: