是否可以使用sudo前端(如gksudo)来提升当前进程的权限?我知道我可以做到以下几点:sudo cat /etc/passwd-但我有兴趣这样做:sudo-become-root # magic function/commandcat /etc/passwd-我正在用Python写作.我的用...

是否可以使用sudo前端(如gksudo)来提升当前进程的权限?我知道我可以做到以下几点:
sudo cat /etc/passwd-
但我有兴趣这样做:
sudo-become-root # magic function/command
cat /etc/passwd-
我正在用Python写作.我的用例是我有一个以用户身份运行的程序,但可能会遇到根目录所有的读/写文件.我想提示输入密码,获得root权限,执行我需要的操作,然后再选择删除权限.
我知道我可以将管理逻辑和非管理逻辑分离到单独的进程中,然后以root身份运行管理进程(通过一些通信 – policykit / dbus非常适合这里).但我希望有一个更简单(虽然承认风险更大)的解决方案.
我正在考虑通过sudo运行Solaris的ppriv然后修改当前进程的权限.这似乎是一个hacky-but-workingable往返.但据我所知,linux不提供ppriv.
(我很惊讶这已经不是很明显了;这似乎是一个不常见的事情,似乎并不是一个安全漏洞,允许升级进程升级新进程.)
解决方法:
不幸的是,我不知道如何干净地做你想做的事.我认为你最好的选择是让程序setuid(或在sudo下运行它)然后执行你的脏工作和删除权限,或者fork()并从一个进程中删除权限并保持另一个进程以完成你的root工作.
您正在寻找的是setuid(2)/ setreuid(2)/ setregid(2)/ setgroups(2)调用,但它们都是硬连接的,不允许您在调用期间获得权限.据我所知,你只能用它们来“放弃”特权.
本文标题为:python – 我如何sudo当前进程?


基础教程推荐
- python开发之virtualenv与virtualenvwrapper(linux下安装与配置) 2023-09-04
- 【Python】进程和多线程分别适用于什么情况? 2023-09-05
- windows下安装python requests 2023-09-05
- 如何更改Ubuntu 16.04 默认Python版本方法 2023-09-05
- centos7 安装python3 2023-09-04
- python-如何在缺少内存的情况下将缺少记录的大型xyz文件网格化 2023-11-12
- python递归内存不足 2023-11-14
- 用法介绍Python Protobuf 2023-10-08
- Python pygame派生精灵和精灵组创建敌机 2022-09-02
- Python requirements.txt安装用法介绍 2023-10-08