linux简单方法实现让普通用户执行管理员命令
2012-05-26 19:39
656 查看
某大神写了个程序,每次服务器开机是必须执行这个程序,这个程序必须用sudo管理员的权限执行才有效,每次开机后都要去手动执行这条命令,懒人怎么受的了?于是乎,我想到把这个命令添加到系统启动项里面,但是,普通命令好添加,必须加sudo的命令怎么添加呢?网上百了半天没百到,纠结,都怪自己linux没学好,以后还要研究研究linux怎么启动。这条路没走通就换一条吧。我昨天提到用pexpect实现自动交互,试了一下,很爽啊!哈哈,完美的完成了我的任务!看下面的示例代码:
import pexpect
def RunCmd(cmd,passwd):
run = pexpect.spawn(cmd)
try:
i = run.expect(["sudo"])
if i == 0:
run.sendline(passwd)
run.sendline("yes\n")
r = run.read()
print r
except:
print 'Error'
if __name__=='__main__':
cmd = 'sudo apt-get remove emacs'
passwd = ""
RunCmd(cmd,passwd)
下面是简化版本,如果命令仅仅需要输入密码,可以这样实现:
#! /usr/bin/python
import pexpect
pexpect.spawn('sudo [cmd]').sendline("[password]")
昨天的ssh批量远程登录并执行命令这个问题(/article/4886321.html),有个缺陷,就是必须开启root管理员账户,以管理员的身份去执行命令,这样做是有风险的(你懂得),对于这种必须要必须要加sudo才能执行的命令,用自动交互来执行更好,这样我们可以把两种方式结合起来,思路是这样的:
首先把上面的python脚本放在某个服务器上(本地建一个apache服务器就行),然后ssh登录远程主机(非root用户),用wget让主机去下载服务器上面的python脚本,然后在远程主机上执行远程脚本,执行完后把这个脚本立即删除。
刚才又发现一个好东西:加快ubuntu登录ssh的速度(/article/4886322.html),这样真的很快啊!我们可以写个程序去修改批量修改,这样运行效率又会提升很多!
如果机器少的话还可以设置免输入密码自动登录:(/article/4886323.html),这样就不需要我的python程序了
当然上面的工作是你必须提前做好的,一切都配置好了以后不管干什么都方便很多!
import pexpect
def RunCmd(cmd,passwd):
run = pexpect.spawn(cmd)
try:
i = run.expect(["sudo"])
if i == 0:
run.sendline(passwd)
run.sendline("yes\n")
r = run.read()
print r
except:
print 'Error'
if __name__=='__main__':
cmd = 'sudo apt-get remove emacs'
passwd = ""
RunCmd(cmd,passwd)
下面是简化版本,如果命令仅仅需要输入密码,可以这样实现:
#! /usr/bin/python
import pexpect
pexpect.spawn('sudo [cmd]').sendline("[password]")
昨天的ssh批量远程登录并执行命令这个问题(/article/4886321.html),有个缺陷,就是必须开启root管理员账户,以管理员的身份去执行命令,这样做是有风险的(你懂得),对于这种必须要必须要加sudo才能执行的命令,用自动交互来执行更好,这样我们可以把两种方式结合起来,思路是这样的:
首先把上面的python脚本放在某个服务器上(本地建一个apache服务器就行),然后ssh登录远程主机(非root用户),用wget让主机去下载服务器上面的python脚本,然后在远程主机上执行远程脚本,执行完后把这个脚本立即删除。
刚才又发现一个好东西:加快ubuntu登录ssh的速度(/article/4886322.html),这样真的很快啊!我们可以写个程序去修改批量修改,这样运行效率又会提升很多!
如果机器少的话还可以设置免输入密码自动登录:(/article/4886323.html),这样就不需要我的python程序了
当然上面的工作是你必须提前做好的,一切都配置好了以后不管干什么都方便很多!
相关文章推荐
- Linux下管理员强行踢出用户的命令使用方法
- linux 下普通用户无法使用sudo命令的解决方法
- 根据用户选择执行命令的一段简单Linux Shell
- linux 下普通用户无法使用sudo命令的解决方法
- 普通用户执行需要root权限的命令的方法
- linux普通用户进入终端后,设置vim ./vimrc ,输入set nu set tabstop=4,是简单配置vim的方法
- Linux下管理员强行踢出用户的命令使用方法
- Linux(7) 常用命令扩展 改变用户环境变量 (可以实现登陆就执行shell脚本)
- linux 从普通用户切换为管理员时用 su 命令为什么提示输入密码,按什么键光标都没反应?
- linux实现普通用户只允许使用部分命令
- linux 下普通用户无法使用sudo命令的解决方法
- Linux下管理员强行踢出用户的命令使用方法
- 在linux应用程序使用system函数执行简单的shell交互命令的方法
- Linux下管理员设置用户登录时的警告信息以及不同用户之前相互简单交流的方法
- 普通用户执行sudo命令方法
- Linux下管理员强行踢出用户的命令使用方法
- 配置linux普通用户无密码执行sudo命令
- Linux下管理员强行踢出用户的命令使用方法
- linux下管理员强行踢出用户的命令使用方法
- linux普通用户无法调用系统命令的解决方法