Можно ли запросить root-файл без сохранения в памяти моего скрипта и запустить некоторые команды os. * Как root?Как выполнить os. * Методы как root?
Мой сценарий
- сканирует некоторые папки и файлы, чтобы проверить, если он может сделать работу
- вносит некоторые изменения в/и т.д./...
- создает папки и файлы, которые должны находиться в собственности пользователем, который запускал сценарий
(1) может быть выполнен как обычный пользователь. Я могу сделать (2), выполнив сценарий, но тогда папка и файлы в (3) будут root.
Проблема в том, что я использую много os.makedirs, os.symlink и т. Д., Что мешает мне сделать ее работоспособной обычным пользователем.
Танки 2 все для предложений
Решение до сих пор является:
# do all in sudo
os.chown(folder, int(os.getenv('SUDO_UID')), int(os.getenv('SUDO_GID')))
благодаря gnibbler за подсказку.
Вам нужно будет создать папки и файлы с правами root, а затем использовать 'os.chown', чтобы сменить владельца правильному пользователю. –
Это сработало! os.chown (путь, pwd.getpwnam (os.getenv ('SUDO_USER')) [2]) –