开发者社区> 问答> 正文

linux普通用户获得root密码执行root权限的进程

我想写一个程序,仿照在非root用户下安装程序时,提示需要root密码,然后就能继续安装。意思就是获得root密码后,我就能执行root权限的进程。这个该什么思路呢?execve函数的第三个参数设置环境变量能不能实现?

展开
收起
小旋风柴进 2016-06-06 08:24:08 3768 0
1 条回答
写回答
取消 提交回答
  • #!/usr/bin/env python3
    
    -*- coding: UTF-8 -*-
    """
    以root权限执行,注意su和sudo依赖于终端,所以必须在终端下执行
    """
    
    import os
    import sys
    
    if name == '__main__':
    # 提升到root权限
    if os.geteuid():
    args = [sys.executable] + sys.argv
    # 下面两种写法,一种使用su,一种使用sudo,都可以
    os.execlp('su', 'su', '-c', ' '.join(args))
    # os.execlp('sudo', 'sudo', *args)
    
    # 从此处开始是正常的程序逻辑
    print('Running at root privilege. Your euid is', os.geteuid())
    2019-07-17 19:27:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载