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

问题描述

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

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

解决方案

普通用户执行ROOT权限

解决方案二:

用程序的话就有点麻烦了,可以使用Linux脚本,很方便,SHell脚本

解决方案三:

python供你参考:
#!/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())
os.system('whoami')
时间: 2024-09-14 18:54:34

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

mysql 忘记root密码与root被删除找回方法

解决方法一: 到其他安装了Mysql的服务器(前提是要知道该服务器上Mysql的root用户密码),打开[Mysql的安装目录/var/mysql教程],将其中的user.frm.user.MYD.user.MYI三个文件拷贝到出问题服务器的[Mysql的安装目录/var/mysql]目录中.然后重启服务器. 解决方法二: 修改你的my.ini或my.cnf文件,在 [mysqld] 节下加入下面一行 skip-grant-tables 然后保存并重启 MySQL 服务. 下面你就可以以任何用户

Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips

忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来一个root账号的临时密码,就像下面的图: 我第一次的时候以为是个秘钥啥的,就没有细看,直接关掉了,直到我在workbench中想要连接mysql时,试了各种密码都不行,才知道那个密码是有用的. 没办法,我就去网上找,基本上网上说的都是这样的解决办法: 我用这样的方法也确实进去了,不要密码,但是我也

Linux中重置MySQL ROOT密码详解

重启mysql root密码 方法一.使用mysqladmin  代码如下 复制代码 # ./mysqladmin -u root password 'newpassword' # ./mysqladmin -u root -h host_name password 'newpassword' Usually mysqladmin's path is /usr/bin, host_name is your real host name, e.g. localhost.localdomain. p

MySQL的root密码忘记怎么办 修改root密码的方式_Mysql

如果哪天你忘记了线上MySQL数据库的root密码,怎么办? 大家往往会想到skip-grant-tables参数,具体步骤如下: 1. 关闭MySQL数据库,因为root密码忘记了,mysqladmin无法使用,此时,只能通过kill pid关闭程序. 在这里,科普一下kill 和kill -9的区别 默认参数下,kill 发送SIGTERM信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出. kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出.与SIGTER

ubuntu默认root密码查看与修改

Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码.我们可以在终端输入命令: sudo passwd 然后输入当前用户的密码,enter,终端会提示我们输入新的密码并确认,此时的密码就是root新密码.修改成功后,输入命令 : su root 再输入新的密码就ok了. 为此我们可以通过这样的方式修改root的密码:  代码如下 复制代码 chasfer@chasfer-ubuntu:~$ sudo passwd root [sudo] password for chasf

linux下普通用户在输入root密码下才可以执行对应程序如何实现?

问题描述 linux下普通用户在输入root密码下才可以执行对应程序如何实现? 解决方案 应该是类似于起一个shell,然后要求你切换到root,然后再执行程序,程序退出之后,shell也退出 解决方案二: http://www.lupaworld.com/article-223530-1.html 解决方案三: 获取用户的权限,看看 对于当前用户的程序权限是否足够,不够的话就弹出对话框,要求输入密码

忘记linux用户密码和root密码时的处理方法

linux的root享有至高无上的权力,一旦root密码忘记或者被盗,是一件非常头痛的事情,那么怎么样才能找回root的密码呢,本人把其总结如下: (一)Linux 系统密码破解 1.在grub选项菜单按e进入编辑模式 2.(按e)编辑kernel那行 添加 /init 1 (或/single) 3.按B重启 4.进入后执行下列命令 #vi /etc/passwd  进入passwd文件 将第一行的root:x:0....中的X删除,变成 root::0....然后保存退出! 在进去系统此时ro

Linux下快速重置MySQL用户(root)密码方法

方法一:最简单的方法,也是安装完MySQL后,系统提示的方法.使用mysqladmin来完成.shell> mysqladmin -u root password "newpwd" shell> mysqladmin -u root -h host_name password "newpwd"password后面的双引号不是必须的,不过如果密码包含空格或者一些特殊的符号,需要用引号.方法二:利用mysql里面的SET PASSWORD命令来完成,注意必须

Linux忘记root密码怎么办?

开篇前言:Linux系统的root账号是非常重要的一个账号,也是权限最大的一个账号,但是有时候忘了 root密码怎么办?总不能重装系统吧,这个是下下策,其实Linux系统中,如果忘记了root账号密码,是可以通过进入单用户模式或其它方法修改密码 的.当然,具体方式跟Boot Loader.操作系统有关系,GRUB与LILO的实现方式有所不同. Boot Loader 是在操作系统内核运行之前运行的一段小程序.通过这段小程序,我们可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境带到