萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux命令Man解釋:SUDO(8):以root身份執行指令

Linux命令Man解釋:SUDO(8):以root身份執行指令

class="22367"> 名稱;

sudo;-;以超級使用者;(superuser;;root);的身分執行指令;

visudo;-;編輯;sudoers;檔案;

語法;

sudo;command;

描述;

Sudo;允許經過同意的使用者以超級使用者的身分執行指令。;Sudo;參考/etc/sudoers;這個檔案來判定誰是被授權的使用者。Sudo;將會提示使用者輸入密碼來啟始一段;N;分鐘的允許時間(其中;N;是在安裝的時候定義的且預設值為;5;分鐘)。;

Sudoers;這個檔案是由一個選擇性的主機別名;(host;alias);節區,一個選擇性的指令別名;(command;alias);節區以及使用者說明;(user;specification)節區所組成的。所有的指令別名或主機別名必須需以他們自己的關鍵字作為開始;(Host_Alias/Cmnd_Alias)。注意,只有第一次使用者(在使用者說明節區裡有記錄的使用者)使用時會有說明。;

使用者說明節區格式:;
使用者;接取群組;[:;接取群組;];...;

接取群組;::=;主機象徵;=;[op]指令象徵;[,[op]指令象徵];...;
主機象徵;::=;一個小寫的主機名稱或主機別名。;
指令象徵;::=;一個指令或指令別名。;
op;::=;邏輯的;'!';否定運算元。;

主機別名節區格式:;
Host_Alias;主機別名;=;主機列表;

Host_Alias;::=;這是一個關鍵字。;
主機別名;::=;一個大寫的別名。;
主機列表;::=;以逗號間隔的一些主機名稱。;

指令別名節區格式:;
Cmnd_Alias;指令別名;=;指令列表;

Cmnd_Alias;::=;這是一個關鍵字。;
指令別名;::=;一個大寫的別名。;
指令列表;::=;以逗號間隔的一些指令。;

所有在;'#';符號後面的文字都會被當作是注解。;
太長的行可以使用倒斜線;'';字元來分成新的行。;
保留的別名;'ALL';在;{Host,Cmnd}_Alias';裡都可以使用。;
不要用;'ALL';來定義一個別名,這個別名無效。;
注意到;'ALL';暗示全部的主機跟指令。;
你可以使用這個語法從整個范圍中減掉一些項目:;

user;;host=ALL,!ALIAS1,!/etc/halt...;

范例;

#;Host;alias;specification;
Host_Alias;;HUB=houdini.rootgroup.com:;
REMOTE=merlin,kodiakthorn,spirit;
Host_Alias;;MACHINES=kalkan,alpo,milkbones;
Host_Alias;;SERVERS=houdini,merlin,kodiakthorn,spirit;

#;Command;alias;specification;
Cmnd_Alias;;LPCS=/usr/etc/lpc,/usr/ucb/lprm;
Cmnd_Alias;;SHELLS=/bin/sh,/bin/csh,/bin/tcsh;
Cmnd_Alias;;MISC=/bin/rm,/bin/cat:;
SHUTDOWN=/etc/halt,/etc/shutdown;

#;User;specification;
britt;;;;;;;REMOTE=SHUTDOWN:ALL=LPCS;
robhALL=ALL,!SHELLS;
nieusma;;;;;SERVERS=SHUTDOWN,/etc/reboot:;
HUB=ALL,!SHELLS;
jillhoudini.rootgroup.com=/etc/shutdown,MISC;
markm;;;;;;;HUB=ALL,!MISC,!/etc/shutdown,!/etc/halt;
billp;;;;;;;ALL=/usr/local/bin/top:MACHINES=SHELLS;
davehieb;;;;merlin=ALL:SERVERS=/etc/halt:;
kodiakthorn=ALL;

上面的;sudoers;說明檔案是由;4;個主機別名說明,4;個指令別名說明以及;7;個使用者說明所組成的。Britt;被允許在遠端機器;(merlin,;kodiakthorn,;還有;spirit);上執行;/etc/halt,;/etc/shutdown,;/usr/etc/lpc;以及/usr/ucb/lprm;。Rohn;被允許在任何機器上執行除了;SHELL;指令群以外的任何指令。Jill;被允許在;houdini;上執行;/etc/shotdown,;/bin/rm,;以及/bin/cat;。Davehieb;可以在;merlin;以及;kodiakthorn;上執行任何指令並且可以;halt;SERVERS;。;

Sudoers;檔案應該用;visudo;指令編輯,它會鎖住該檔並且做文法檢查。這提供了一個可以避免愚蠢文法錯誤的機制。;

Sudo;被設計成經由;4.3;BSD;syslogging;來記錄,但是如果真的想要的話還是可以記錄到一個檔案來取代。;

如果一個沒有被授權的使用者執行了;sudo;的話,將會有一封;mail;從該使用者寄送到當地的授權者處(在安裝的時候定義的)。;

所有的設定都是在安裝的時後定義的,從;sudo.h;含入檔及;Makefile;取得。;

未來加強;

允許巢狀的主機以及指令別名。;
允許在;sudoers;檔案中使用;host;specifier;
以便使用全區符號;(user;ALL,!SERVERS,;...;=;commands);。;
允許在;sudores;檔案裡的使用者別名(就如同主機/指令別名一樣)。;
使;visudo;對;sudoers;檔案做更廣泛的檢查。;

檔案;

/etc/sudoers;經授權的使用者檔案。;
/etc/stmp;;;;visudo;的;lock;file;。;
/usr/local/bin/sudo;;sudo;的執行檔。;
/usr/local/etc/visudo修改;sudoers;檔案的工具。;

作者;

Jeff;Nieusma
David;Hieb;;

DISCLAIMER;

這個程式的發行是因為希望它有用處,但是沒有任何保證;甚至沒有對特定用途的銷售或適合有隱含的保證。參閱;GNU;的;General;;Public;License;以獲得更詳細的資訊。;

你應該會連同這個程式一起接收到一份;GNU;General;Public;License;如果沒有的話,寫封信給;Free;Software;Foundation,;Inc.,;675;;Mass;;Ave,;
Cambridge,;;MA;02139,;USA;。;

警告;

如果使用者可以存取;shell;scripts;指令群或允許;shell;escapes;的話,沒有簡單的辦法可以防止使用者得到;root;shell。;

參閱;

su(1);
copyright © 萬盛學電腦網 all rights reserved