linux普通用户获得root密码执行root权限的进程-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

小旋风柴进 2016-06-06 08:24:08 2068

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

Linux 数据安全/隐私保护
分享到
取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 19:27:29
    #!/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())
    0 0
+ 订阅

云安全开发者的大本营

推荐文章
相似问题