sudo的簡單配置
sudo的配置文件是/etc/sudoers,它有專門的編輯工具visudo,用su切換到root用戶,然後執行這個命令。
對 於VI,對我這樣的初學者,只要記住幾個快捷鍵就可以了:光標移動,j上一行,k下一行,h向左,l向右。i切換到編輯狀態,然後再配合End、 Delete、和BackSpace鍵,完成這個位置的編輯,Esc退出編輯狀態;移動光標到下一個位置,再切換到編輯狀態,再輸入,直到修改完成。然後 輸入冒號“:”,最下面一行會改爲接受命令狀態,輸入w,保存,q退出。
執行visudo以後,將光標下移,可以看到一行:
如果加上NOPASSWD,則表示不需要輸入密碼:
基本的定義方法就是這樣,如果需要爲不同的用戶、不同的主機配置不同的命令權限,這樣逐條配置顯然太繁瑣,所以這個配置文件中引入了別名Alias的功能,在配置文件的開頭部分,有四個別名類型:
其它別名的定義也是類似的。這裏就不多囉嗦了,推薦看看Linux 系統中的超級權限的控制,講得比較詳細。
sudo的配置文件是/etc/sudoers,它有專門的編輯工具visudo,用su切換到root用戶,然後執行這個命令。
對 於VI,對我這樣的初學者,只要記住幾個快捷鍵就可以了:光標移動,j上一行,k下一行,h向左,l向右。i切換到編輯狀態,然後再配合End、 Delete、和BackSpace鍵,完成這個位置的編輯,Esc退出編輯狀態;移動光標到下一個位置,再切換到編輯狀態,再輸入,直到修改完成。然後 輸入冒號“:”,最下面一行會改爲接受命令狀態,輸入w,保存,q退出。
執行visudo以後,將光標下移,可以看到一行:
root ALL=(ALL) ALL這個命令定義了root用戶的sudo權限,我們要添加的配置也具有相應的命令格式即
user host=[(Runas)] [NOPASSWD] commands即“被授權用戶”可以在“主機”上以“目標用戶”的權限執行“命令”。方括號內是兩個可選參數,目標用戶缺省爲root。命令必須用絕對路徑,之間用","分開。例如
被授權用戶 主機=[目標用戶][不需密碼] 命令
liuxq localhost=/sbin/poweroff表示用戶liuxq可以在本機上以root的權限執行"sudo /sbin/poweroff"命令,而不需要root密碼(需要liuxq的用戶密碼)。
如果加上NOPASSWD,則表示不需要輸入密碼:
liuxq localhost=NOPASSWD: /sbin/poweroff
基本的定義方法就是這樣,如果需要爲不同的用戶、不同的主機配置不同的命令權限,這樣逐條配置顯然太繁瑣,所以這個配置文件中引入了別名Alias的功能,在配置文件的開頭部分,有四個別名類型:
User_Alias; Host_Alias; Runas_Alias; Cmnd_Alias;分別對應該命令形式中的四個部分。別名實際上定義了相同類型的對象的一個集合。例如
User_Alias LIU=liuxq,lxq定義了一個LIU集合,其中有成員liuxq和lxq,用LIU代替前面命令中的liuxq,則用戶liuxq和lxq都可以執行sudo /sbin/poweroff命令。
其它別名的定義也是類似的。這裏就不多囉嗦了,推薦看看Linux 系統中的超級權限的控制,講得比較詳細。