У меня есть gui, сделанный на поляне, и я застрял на одном.Изменить право собственности и разрешение без терминала - Python
У меня есть кнопка, которая изменяет права собственности и разрешения; он отлично работает, за исключением папок и файлов, принадлежащих root.
Есть ли способ вызвать root privilages для запуска этой команды без ввода пароля root в терминал? то есть либо предопределить его в скрипте, либо активировать всплывающее окно для пароля и ввести его в действие.
Пример кода ниже:
def on_button_clicked(self, widget):
path = {defined from combobox}
os.chdir(path)
uid = os.getuid()
gid = os.getgid()
for root, dirs, files in os.walk(path):
for d in dirs:
os.chown(os.path.join(root, d), uid, gid)
os.chmod(os.path.join(root, d), 0o755)
for f in files:
os.chown(os.path.join(root, f), uid, gid)
os.chmod(os.path.join(root, f), 0o755)
Любая причина, по которой запущен скрипт как root, не работает для вас? Требование «нет ввода пароля в терминал» для меня немного неясно. Вы имеете в виду, что вы никогда не хотите вводить его * когда-либо *, или просто не хотите, чтобы сценарий был прерван запросом пароля? – skrrgwasme
Я думаю, вы могли бы использовать [Envoy] (https://github.com/kennethreitz/envoy) – Olian04
Причина, @skrrgwasme, заключается в том, что скрипт отлично работает в gui, и если я использую os.system ('sudo chown ..... '), это заставляет его выглядеть так, как будто он имел сбой, так как на самом деле он ожидает ввода пароля root. –