西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页西西教程操作系统 → 让linux普通用户执行管理员命令

让linux普通用户执行管理员命令

相关软件相关文章发表评论 来源:西西整理时间:2012/5/26 21:57:24字体大小:A-A+

作者:佚名点击:93次评论:0次标签: linux

  • 类型:电子资料大小:768KB语言:中文 评分:10.0
  • 标签:
立即下载

某大神写了个程序,每次服务器开机是必须执行这个程序,这个程序必须用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) 

    昨天的ssh批量远程登录并执行命令这个问题(http://www.cnblogs.com/ma6174/archive/2012/05/25/2508378.html),有个缺陷,就是必须开启root管理员账户,以管理员的身份去执行命令,这样做是有风险的(你懂得),对于这种必须要必须要加sudo才能执行的命令,用自动交互来执行更好,这样我们可以把两种方式结合起来,思路是这样的:

首先把上面的python脚本放在某个服务器上(本地建一个apache服务器就行),然后ssh登录远程主机(非root用户),用wget让主机去下载服务器上面的python脚本,然后在远程主机上执行远程脚本,执行完后把这个脚本立即删除。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)