2013-08-06 25 views
0

已經有sudo PW的bash腳本,因此它不會提示用戶使用Linux操作系統的

我想編寫一個需要sudo訪問的bash腳本 - 但是由沒有此訪問權限和PW的人員運行。 這意味着我將只有腳本執行特權,並且會有sudo用戶名和密碼。

這樣非管理員用戶將會使用./run_my_script.bash,並且這個腳本會像sudo沒有提示用戶輸入PW一樣執行操作。

- 是的我知道我需要這個腳本只能執行,所以他們不能只讀取文件,然後有sudo PW。

+0

你能更明確地制定一個實際的問題嗎? – chris

+0

聽起來像你即將發現['setuid'](http://en.wikipedia.org/wiki/Setuid)。但是,出於安全原因,setuid通常對於shell腳本是禁用的。用另一種語言(比如Python或Perl)重寫或創建一個簡單的C封裝器。 – tripleee

回答

2

短版:第

加長版:sudo的使用用戶自己的密碼,所以你不能把它的腳本。

更好的方法是配置sudo,以便人們可以運行該腳本。例如,如果腳本/usr/local/bin/root_stuff.sh再裝上去一樣

Cmnd_Alias ROOTCMD = /usr/local/bin/root_stuff.sh 
%users ALL=ROOTCMD, NOPASSWD: ROOTCMD 

這樣,用戶可以運行sudo root_stuff.sh

或者,如果這是真的超越他們,將代碼放在/usr/local/bin/root_stuff_inner.sh(上述改變ROOTCMD),並把這個在root_stuff.sh

#!/bin/sh 
sudo /usr/local/bin/root_stuff.sh 
相關問題