我有一个用林间空地做的gui,我被困在一件事上。
我有一个更改所有权和权限的按钮;除了root拥有的文件夹和文件之外,它工作正常。
是否有调用root权限来运行此命令而无需在终端中输入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)
答案 0 :(得分:0)
该奖项授予@intepidhero以获得一些有用的链接;第一个就行了!
您所需要做的就是确保您的用户/组处于sudoers并将后续代码放在脚本的头部,并且嘿presto ...您运行的应用程序被提升为sudo!
import os
import sys
euid = os.geteuid()
if euid != 0:
print "Script not started as root. Running sudo.."
args = ['sudo', sys.executable] + sys.argv + [os.environ]
# the next line replaces the currently-running process with the sudo
os.execlpe('sudo', *args)
print 'Running. Your euid is', euid