2014-02-17 93 views
2

所以這是一個想法,我只是爲了提高效率就是腳本。我想知道是否可以製作具有sudo權限但不提示密碼的自定義命令(即jello)。我寫了很多需要sudo權限的腳本,不想每次都鍵入它們。我一直在編輯sudoers文件併爲這些文件製作例外。但是如果可能的話,我會非常喜歡,所以我只需在腳本中輸入這個命令,它就可以運行而不需要輸入密碼。定製Sudo命令

+0

我不是Linuz和我不專家不知道是否有可能 - 但是你認爲你可能需要一個令牌(或者更糟的是,一個明文passwo rd)在腳本中使它成爲可能?我希望你的腳本不適合其他人使用。 – Renan

+0

嘿,腳本只適用於我的電腦。我只是好奇這種可能性。我不想在計算機上面臨巨大的安全風險,這就是爲什麼一個特殊的命令會很好,因爲只有當我看到它時我纔會知道它。什麼是令牌?我在 – user244985

+1

之前沒有聽說過這個詞,您可以設置特定的命令以便無密碼sudo訪問(對特定用戶組)。在'/ etc/sudoers'中,你可以使用'usr ALL = NOPASSWD:/ home/me/bin/custom_ping'這樣的命令來啓用組'usr'的成員來運行通常需要root密碼的'custom_ping'。 – Bonlenfum

回答

1

一種選擇是在sudoers文件中使用通配符(sudoers manpage)。

注意:您需要採取適當的預防措施有任何這樣的策略,因爲你一定不會知道所有你的時間 提前授權訪問的命令 - some exploitsrisks

如果風險是可以接受你,然後把這樣的事情到您的/etc/sudoers文件將允許您添加相同形式的新命令,使這些命令的運行不用每次都輸入密碼:

me   ALL= NOPASSWD: /home/me/privil_scripts/priviledged_*.sh 

確保其他用戶在這個目錄下放入額外的腳本並不容易!保持這種安全的意見最受歡迎。

作爲一個快速測試:

# create a directory with some files inside 
cd ~; mkdir nolook; touch nolook/f1; touch nolook/f2 
>>> f1 f2 
# make it so regular user can't see inside 
sudo chmod -R 700 nolook; sudo chown -R root:root nolook 
# test 
ls nolook 
>>> ls: cannot open directory nolook/: Permission denied 

現在寫特權&無特權的腳本:

echo " 
#!/bin/sh 
sudo ls nolook 
" > privil_scripts/priviledged_ls.sh 
chmod +x !$ 

echo " 
#!/bin/sh 
sudo ls nolook 
" > privil_scripts/plain_ls.sh 
chmod +x !$ 

和試戴:

privil_scripts/priviledged_ls.sh 
>>> f1 f2 

privil_scripts/plain_ls.sh 
>>> [sudo] password for me: 
+0

@ user244985這是否解決了您的問題? – Bonlenfum

+0

是的,它確實,對不起,我還沒有把它標記爲答案。謝謝 – user244985