无需终端即可更改所有权和权限 - Python
Change ownership and permission without terminal - Python
我有一个在 glade 中制作的图形用户界面,但被困在一件事上。
我有一个更改所有权和权限的按钮;它工作正常,除了 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)
@intepidhero 因提供了一些有用的链接而获奖;第一个成功了!
您所要做的就是确保您的 user/group 在 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
我有一个在 glade 中制作的图形用户界面,但被困在一件事上。
我有一个更改所有权和权限的按钮;它工作正常,除了 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)
@intepidhero 因提供了一些有用的链接而获奖;第一个成功了!
您所要做的就是确保您的 user/group 在 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