西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)西西教程操作系統(tǒng) → 讓linux普通用戶執(zhí)行管理員命令

讓linux普通用戶執(zhí)行管理員命令

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2012/5/26 21:57:24字體大。A-A+

作者:佚名點(diǎn)擊:93次評(píng)論:0次標(biāo)簽: linux

  • 類型:電子資料大小:768KB語(yǔ)言:中文 評(píng)分:10.0
  • 標(biāo)簽:
立即下載

某大神寫了個(gè)程序,每次服務(wù)器開機(jī)是必須執(zhí)行這個(gè)程序,這個(gè)程序必須用sudo管理員的權(quán)限執(zhí)行才有效,每次開機(jī)后都要去手動(dòng)執(zhí)行這條命令,懶人怎么受的了?于是乎,我想到把這個(gè)命令添加到系統(tǒng)啟動(dòng)項(xiàng)里面,但是,普通命令好添加,必須加sudo的命令怎么添加呢?網(wǎng)上百了半天沒百到,糾結(jié),都怪自己linux沒學(xué)好,以后還要研究研究linux怎么啟動(dòng)。這條路沒走通就換一條吧。我昨天提到用pexpect實(shí)現(xiàn)自動(dòng)交互,試了一下,很爽!哈哈,完美的完成了我的任務(wù)!看下面的示例代碼:

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批量遠(yuǎn)程登錄并執(zhí)行命令這個(gè)問題(http://www.cnblogs.com/ma6174/archive/2012/05/25/2508378.html),有個(gè)缺陷,就是必須開啟root管理員賬戶,以管理員的身份去執(zhí)行命令,這樣做是有風(fēng)險(xiǎn)的(你懂得),對(duì)于這種必須要必須要加sudo才能執(zhí)行的命令,用自動(dòng)交互來執(zhí)行更好,這樣我們可以把兩種方式結(jié)合起來,思路是這樣的:

首先把上面的python腳本放在某個(gè)服務(wù)器上(本地建一個(gè)apache服務(wù)器就行),然后ssh登錄遠(yuǎn)程主機(jī)(非root用戶),用wget讓主機(jī)去下載服務(wù)器上面的python腳本,然后在遠(yuǎn)程主機(jī)上執(zhí)行遠(yuǎn)程腳本,執(zhí)行完后把這個(gè)腳本立即刪除。

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)