亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2035 | 回復(fù): 1
打印 上一主題 下一主題

sudoers中文man文檔 ZT [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-08-25 13:50 |只看該作者 |倒序?yàn)g覽
sudoers中文man文檔
翻譯:KingArthur 日期:2003.5.2
名稱
sudoers---一個(gè)關(guān)于哪些用戶可以執(zhí)行哪些命令的列表
描述
sudoers配置文件由兩種內(nèi)容組成:別名(基本變量)和用戶說(shuō)明(user
specification)(定義了誰(shuí)能運(yùn)行什么).sudoers的語(yǔ)法將在下面用擴(kuò)展的巴科斯-諾爾范式(Extended
Backus-Naur
Form,EBNF)描述.如果您不知道什么是EBNF是什么的話也請(qǐng)不要放棄,事實(shí)上它很簡(jiǎn)單,并且下面用它作的定義都是經(jīng)過(guò)注釋的.
EBNF的快速指導(dǎo)
EBNF是用來(lái)描述某種語(yǔ)言的語(yǔ)法的一種簡(jiǎn)潔且精確的方法.每一個(gè)EBNF定義都是由"production rules"這種形式組成的.例如:
symbol ::= definition | alternate1 |alternate2 ...........
每一個(gè)"production rule"都和其它的"production
rule"有關(guān)聯(lián),這樣就構(gòu)成了這種語(yǔ)言的語(yǔ)法.EBNF也包含了下面的操作符,許多讀者都能夠認(rèn)出這是正則表達(dá)式(regular
expression)的符號(hào).但是,不要把它們和通配符(wildcard0搞混淆了.它們有著不同的含義.
? 意味著前面的一個(gè)記號(hào)(symbol)或者一組記號(hào)(group of symbol)是可選的,也就是說(shuō),可以出現(xiàn)一次或根本就不出現(xiàn)
* 在前面的一個(gè)或者一組記號(hào)出現(xiàn)零次或多次
+ 在前面的一個(gè)或者一組記號(hào)出現(xiàn)一次或多次
括號(hào)可以用來(lái)把記號(hào)組合在一起(to group symbols together),單引號(hào)可以把一個(gè)字符串按照他的字面意思來(lái)解釋(這與記號(hào)的名字相反).
別名
有四種別名:User_Alias,Runas_Alias,Host_Alias和Cmnd_Alias.
Alias ::= 'User_Alias' User_Alias (':' User_Alias)* |
'Runas_Alias' Runas_Alias (':' Runas_Alias)* |
'Host_Alias' Host_Alias (':' Host_Alias)* |
'Cmnd_Alias' Cmnd_Alias (':' Cmnd_Alias)*
User_Alias ::= NAME '=' User_List
Runas_Alias ::= NAME '=' Runas_List
Host_Alias ::= NAME '=' Host_List
Cmnd_Alias ::= NAME '=' Cmnd_List
NAME ::= [A-Z]([A-Z][0-9]_)*
每一個(gè)別名都是按這種形式定義的:
Alias_Type NAME = item1, item2, ....................
這里Alias_Type是User_Alias,Runas_Alias,Host_Alias,Cmnd_Alias中的一個(gè),NAMEW是
一個(gè)由大寫(xiě)字母,數(shù)字和下劃線組成的字符串,并且它必需以一個(gè)大寫(xiě)字母開(kāi)頭.可以把同一類型的多個(gè)別名定義放在同一行里,中間以一個(gè)冒號(hào)隔開(kāi).例如:
Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
一個(gè)組成合法別名成員的定義緊隨其后.(The definitions of what constitutes a valid alias member follow.)
User_List ::= User |
User ',' User_List
User ::= '!'* username |
'!'* '%'group |
'!'* '+'netgroup |
'!'* User_Alias
(譯注:這里應(yīng)該是
User_List ::= User |
User ',' User_List
User ::= '!'* username |
'!'* '#'uids |
'!'* '%'group |
'!'* '+'netgroup |
'!'* User_Alias
才對(duì))
一個(gè)User_List是由一個(gè)或多個(gè)用戶名,用戶ID(要加上"#"前綴),系統(tǒng)用戶組(要加上"%"前綴),網(wǎng)絡(luò)組(要加上"+"前綴)或者
其它User_Alias組成.每一個(gè)列表項(xiàng)都可以加上一個(gè)或多個(gè)"!"前綴.奇數(shù)個(gè)"!"使這個(gè)列表項(xiàng)取反,偶數(shù)個(gè)"!"沒(méi)有任何作用.(譯注:這里的
"!"也就是取反啦)
Runas_List ::= Runas_User |
Runas_User ',' Runas_List
Runas_User ::= '!'* username |
'!'* '#'uid |
'!'* '%'group |
'!'* +netgroup |
'!'* Runas_Alias
Runas_List和User_List是很相象的,僅僅是用Runas_Aliases替代了User_Aliases
Host_List ::= Host |
Host ',' Host_List
Host ::= '!'* hostname |
'!'* ip_addr |
'!'* network(/netmask)? |
'!'* '+'netgroup |
'!'* Host_Alias
Host_List是由一個(gè)或者多個(gè)主機(jī)名,IP地址,網(wǎng)絡(luò)號(hào),網(wǎng)絡(luò)組(要加上"+"前綴)或者其他的Host_Alias組成的.同樣的,一個(gè)
列表項(xiàng)的值也可以用"!"來(lái)取消.如果您使用了一個(gè)網(wǎng)絡(luò)號(hào)但是沒(méi)有隨之指定子網(wǎng)掩碼,那么主機(jī)的以太網(wǎng)接口的子網(wǎng)掩碼將被使用-----如果它能夠相配的
話.子網(wǎng)掩碼可以用點(diǎn)分十進(jìn)制表示法來(lái)指定(如:255.255.255.0),也可以用CIDR(無(wú)類型域間選路)表示法指定(采用掩碼中1的為數(shù),
如:24.這和前面的255.255.255.0是等價(jià)的).主機(jī)名可以包含shell風(fēng)格的通配符(請(qǐng)查看下面的"通配符"一節(jié)),但是除非您機(jī)器上的
hostname命令能返回完整的主機(jī)名,為了使通配符有效您需要使用fqdn選項(xiàng)(見(jiàn)下面的"標(biāo)志"小節(jié))
Cmnd_List ::= Cmnd |
Cmnd ',' Cmnd_List
commandname ::= filename |
filename args |
filename '""'
Cmnd ::= '!'* commandname |
'!'* directory |
'!'* Cmnd_Alias
Cmnd_List是由一個(gè)或多個(gè)命令名,目錄或者其他Cmnd_Alias組成的列表.命令名是一個(gè)可以包含shell風(fēng)格通配符(請(qǐng)查看下面
的"通配符"一節(jié))的完整文件名.一個(gè)簡(jiǎn)單的文件名永許用戶以任何他們想使用的參數(shù)來(lái)執(zhí)行命令.但是您也可以指定命令行參數(shù)(可以包含通配符).您還可以
通過(guò)交替的使用"
"來(lái)說(shuō)明這個(gè)命令執(zhí)行時(shí)不能帶任何命令行參數(shù).當(dāng)您在Cmnd_List中指定了一個(gè)目錄時(shí),用戶將可以執(zhí)行這個(gè)目錄中的任何文件(不包括子目錄中的文
件).
如果Cmnd關(guān)聯(lián)上了命令行參數(shù),那么用戶在命令行上所給的參數(shù)必需精確的匹配Cmnd中的參數(shù)(或者要和通配符匹配).注意,如果下面的字符在命令參數(shù)中出現(xiàn)的話,必須使用"\"來(lái)將其轉(zhuǎn)義: ',', ':', '=', '\'.
默認(rèn)項(xiàng)
通過(guò)一個(gè)或多個(gè)Default_Entry行,一些特定的配置選項(xiàng)在運(yùn)行時(shí)可以從它們的默認(rèn)值改變.(譯注:好拗口哦:p)這些選項(xiàng)可以對(duì)在任何
主機(jī)上的所有用戶或者在某個(gè)特定主機(jī)上的所有用戶或者僅僅是一個(gè)特定的用戶產(chǎn)生作用.如果多個(gè)條目都匹配,那么它們會(huì)按順序執(zhí)行.如果有沖突的值,那么最
后一個(gè)匹配行上的值將會(huì)產(chǎn)生作用.
Default_Type ::= 'Defaults' ||
'Defaults' ':' User ||
'Defaults' '@' Host
Default_Entry ::= Default_Type Parameter_List
Parameter ::= Parameter '=' Value ||
Parameter '+=' Value ||
Parameter '-=' Value ||
'!'* Parameter ||
Parameters可以是標(biāo)志(flags),整數(shù)值(integer
values),字符串(strings)或者列表(lists).標(biāo)志是一個(gè)布爾值,可以通過(guò)使用"!"操作符來(lái)取反.一些整數(shù),字符串和列表參數(shù)也可
以在布爾上下文中使用以使其取反.由多個(gè)單詞組成的值必須用雙引號(hào)引起來(lái).一些特殊字符必須用"\"轉(zhuǎn)義.
列表還有兩個(gè)附加的操作符,+=和-=.這兩個(gè)操作符被分別用來(lái)從一個(gè)列表中增加或刪除條目.用"-="操作符從列表中刪除不存在的項(xiàng)目并不算是錯(cuò)誤.
注意,由于sudoers文件是按順序解析的,所以放置Default段的最佳位置是在Host,User和Cmnd別名段之后,用戶定義段之前.
標(biāo)志
long_otp_prompt
When validating with a One Time Password scheme (S/Key or OPIE), a
two-line prompt is used to make it easier to cut and paste the
challenge to a local window. It's not as pretty as the default but some
people find it more convenient. This flag is off by default.
(譯注:這一段我還沒(méi)讀懂,貼原文上來(lái)吧)
ignore_dot
如果設(shè)置(為on)的話,sudo將會(huì)忽略PATH環(huán)境變量中的'.'或者''(就是當(dāng)前目錄).PATH本身不會(huì)被修改.這個(gè)標(biāo)志默認(rèn)是on.
mail_always
每當(dāng)有用戶使用sudo時(shí)就給mailto user發(fā)送一封郵件.此標(biāo)志默認(rèn)是off.
mail_badpass
當(dāng)用戶使用sudo但是卻輸入了錯(cuò)誤的
[color="red"]口令
時(shí)將給mailto user發(fā)送一封郵件.此標(biāo)志默認(rèn)是off.
mail_no_user
如果使用sudo的用戶在sudoers中沒(méi)有記錄的話將給mailto user發(fā)送一封郵件.此標(biāo)志默認(rèn)為on.
mail_no_host
如果使用sudo的用戶在sudoers中有記錄,但是他不被永許在正在使用的主機(jī)上使用sudo,將給mailto user(請(qǐng)查看"可以用在布爾上下文中的字符串"一節(jié))發(fā)送一封郵件.此標(biāo)志默認(rèn)為off.
mail_no_perms
如果用戶有使用sudo的權(quán)限,但是他試圖用sudo使用的命令在sudoers中沒(méi)有列出來(lái),那么給mailto user發(fā)送一封郵件.此標(biāo)志默認(rèn)為off.
tty_tickets
如果設(shè)置(為on)的話,用戶必須使用基于終端(tty)的的驗(yàn)證方法.一般的,sudo在ticket dir里使用一個(gè)與執(zhí)行sudo的用戶同名的目錄.這個(gè)標(biāo)志設(shè)置后,sudo將在那個(gè)目錄中使用一個(gè)與執(zhí)行sudo的用戶登錄tty同名的文件.此標(biāo)志默認(rèn)為on.
lecture
如果設(shè)置(為on)的話,初次使用sudo的用戶將收到一個(gè)簡(jiǎn)短的lecture.此標(biāo)志默認(rèn)為on.
authenticate
如果設(shè)置(為on)的話,用戶在用sudo執(zhí)行命令之前必須通過(guò)
[color="red"]口令
(或者通過(guò)其他的方式)來(lái)驗(yàn)證身分.這個(gè)默認(rèn)選項(xiàng)可以通過(guò)設(shè)置PASSWD和NOPASSWD標(biāo)簽(tags)來(lái)覆蓋.此標(biāo)志默認(rèn)為on.
root_sudo
如果設(shè)置(為on)的話,root也將被永許使用sudo.將此標(biāo)志設(shè)置為off來(lái)阻值用戶通過(guò)使用類似于"sudo sudo /bin/sh"這樣的連鎖sudo命令來(lái)獲得一個(gè)root權(quán)限的shell.此標(biāo)志默認(rèn)為on.
log_host
如果設(shè)置(為on)的話,主機(jī)名將被記錄在sudo的日志文件(不是系統(tǒng)日志)中.此標(biāo)志默認(rèn)為off.
log_year
如果設(shè)置(為on)的話,四位的年份將被記錄在sudo的日志文件(不是系統(tǒng)日志)中).此標(biāo)志默認(rèn)為off.
shell_noargs
如果設(shè)置(為on)并且sudo并未帶任何參數(shù)執(zhí)行的話,sudo的表現(xiàn)就象是帶-s選項(xiàng)一樣.也就是說(shuō),將會(huì)以root身分運(yùn)行一個(gè)shell
(如果SHELL環(huán)境變量被設(shè)置的話,這個(gè)shell就是SHELL定義的shell,否則,將運(yùn)行用戶/etc/passwd中項(xiàng)的shell字段定義
的shell).此標(biāo)志默認(rèn)為off.
set_home
如果設(shè)置(為on)并且sudo是帶-s選項(xiàng)執(zhí)行的話,HOME環(huán)境變量將被設(shè)置為目標(biāo)用戶(target user)(除非sudo使用了-u選項(xiàng),目標(biāo)用戶就是root)的主目錄.這實(shí)際上使-s選項(xiàng)包含了-H選項(xiàng).此標(biāo)志默認(rèn)為off.
always_set_home
如果設(shè)置(為on)的話,sudo將把HOME環(huán)境變量設(shè)置為目標(biāo)用戶(target user)(除非sudo使用了-u選項(xiàng),目標(biāo)用戶就是root)的主目錄.這實(shí)際上意味著-H選項(xiàng)總是被包含.此標(biāo)志默認(rèn)是off.
path_info
一般來(lái)說(shuō),如果一個(gè)命令不能在PATH環(huán)境變量中找到的話,sudo將會(huì)告訴用戶.但是某些站點(diǎn)可能會(huì)希望禁止這個(gè)特性.因?yàn)檫@可以用來(lái)收集一些
關(guān)于普通用戶沒(méi)有權(quán)限執(zhí)行的命令的位置的信息.不利之處在于,如果命令只是不在用戶的PATH中的話,sudo將告訴用戶他們不被永許執(zhí)行這些命令,這可
能會(huì)把人高糊涂.此標(biāo)志默認(rèn)是off.
preserve_groups
默認(rèn)地,sudo會(huì)初始化目標(biāo)用戶(target user)所在組列表的組向量(譯注:原文是By default sudo will
initialize the group vector to the list of groups the target user is
in.)preserve_groups設(shè)置后,用戶已存在的組向量將被保存不變.真實(shí)組ID和有效組ID仍然會(huì)被設(shè)置與目標(biāo)用戶相匹配.此標(biāo)志默認(rèn)是
off,
fqdn
如果您想在sudoers中使用完整主機(jī)名的話,請(qǐng)?jiān)O(shè)置此項(xiàng).例如:使用myhost.mydomain.edu來(lái)替代myhost.設(shè)置后如果
原意的話您也可以使用短格式(甚至把兩種格式混合起來(lái)使用).注意,打開(kāi)fqdn標(biāo)志需要讓sudo進(jìn)行DNS解析,而如果DNS停止工作(例如機(jī)器沒(méi)有
連入網(wǎng)絡(luò))的話會(huì)導(dǎo)致sudo無(wú)法使用.同時(shí)需要注意的是,您必須使用DNS知道的主機(jī)正式名稱,也就是說(shuō)您不能使用主機(jī)的別名(CNAME
entry),因?yàn)槟鸁o(wú)法從DNS處得到所有的別名.如果您機(jī)器的主機(jī)名(就是hostname命令的輸出)已經(jīng)是完整格式,您就不需要設(shè)置fqdn.此
標(biāo)志默認(rèn)是off.
insults
如果設(shè)置(為on)的話,sudo將會(huì)侮辱(insult)輸入錯(cuò)誤
[color="red"]口令
的用戶(譯注:這也可以?:p).此標(biāo)志默認(rèn)為off.
requiretty
如果設(shè)置(為on)的話,sudo僅僅在用戶從一個(gè)真正的tty上登錄時(shí)才會(huì)執(zhí)行.這將不永許像"rsh somehost sudo
ls"這樣的命令,因?yàn)閞sh并不分配一個(gè)tty.因?yàn)楫?dāng)沒(méi)有tty存在時(shí)無(wú)法關(guān)閉echo,所以一些站點(diǎn)可能會(huì)希望設(shè)置這個(gè)標(biāo)志來(lái)阻止用戶輸入可見(jiàn)(回
顯)的
[color="red"]口令
.此標(biāo)志默認(rèn)為off.
env_editor
如果設(shè)置(為on)的話,visudo將使用在EDITOR或者VISUAL環(huán)境變量中定義的編輯器,如果EDITOR和VISUAL都沒(méi)有定義的話將使用默認(rèn)的編輯器列表.注意,這可能造成一個(gè)安全
[color="red"]漏洞
,
因?yàn)檫@永許用戶以root身份運(yùn)行任意的命令而不被日志記錄.一個(gè)安全的變通方法是在editor(見(jiàn)下面的"字符串"小節(jié))中保存一個(gè)用冒號(hào)分隔的編輯
器列表.這樣visudo將僅僅使用EDITOR或者VISUAL中定義的編輯器-----如果它們和editor列表中的某個(gè)項(xiàng)目匹配的話.
rootpw
如果設(shè)置(為on)的話,sudo將提示輸入root的
[color="red"]口令
而不是執(zhí)行sudo命令的用戶的
[color="red"]口令
.此標(biāo)志默認(rèn)為off.
runaspw
如果設(shè)置(為on)的話,sudo將提示輸入由runsa_default選項(xiàng)定義的用戶(默認(rèn)為root)的
[color="red"]口令
而不是執(zhí)行sudo命令的用戶的
[color="red"]口令
.此標(biāo)志默認(rèn)為off.
targetpw
如果設(shè)置(為on)的話,sudo將提示輸入由sudo的-u選項(xiàng)指定的用戶(默認(rèn)為root)的
[color="red"]口令
而不是執(zhí)行sudo的用戶的
[color="red"]口令
.此標(biāo)志默認(rèn)為off.
set_logname
一般地,sudo將把LOGNAME和USER環(huán)境變量設(shè)置為目標(biāo)用戶(除非使用了-u選項(xiàng)的話,就是root)的名字.但是,因?yàn)橐恍┏绦?包
括RCS版本控制系統(tǒng))使用LOGNAME來(lái)確認(rèn)用戶的真實(shí)身份,它可能想要改變這種行為,這可以通過(guò)取消set_logname選項(xiàng)來(lái)實(shí)現(xiàn).
stay_setuid
一般地,當(dāng)sudo執(zhí)行一個(gè)命令時(shí),真實(shí)UID和有效UID都被設(shè)置為目標(biāo)用戶(默認(rèn)是root)的UID.這個(gè)選項(xiàng)改變了這種行為,它把真實(shí)
UID保留為執(zhí)行sudo的用戶的UID.換句話說(shuō),這使sudo成為了一個(gè)setuid程序.這在那些當(dāng)setuid程序運(yùn)行時(shí)禁用一些有潛在危險(xiǎn)的功
能的系統(tǒng)上會(huì)很有用.盡管如此,請(qǐng)注意這意味著sudo運(yùn)行時(shí)的真實(shí)UID將是執(zhí)行sudo命令的用戶的UID,這可能會(huì)允許用戶在能夠在日志中記錄下一
個(gè)failure之前殺死sudo,這倚賴于您的
[color="red"]操作系統(tǒng)
如何定義信號(hào)和setuid進(jìn)程之間的相互作用.
env_reset
如果設(shè)置(為on)的話,sudo將把環(huán)境重置為只包含下列變量:HOME,LOGNAME,PATH,SHELL,TERM和USER(此外還
有SUDO_*).在這些變量中,只有TERM保留原環(huán)境中的值不變,其他的變量都被設(shè)置為默認(rèn)值(值可能被set_logname選項(xiàng)修改).如果
sudo編譯時(shí)加入了SECURE_PATH選項(xiàng),它的值將被作為PATH環(huán)境變量的值.其他的變量可以由設(shè)置env_keep選項(xiàng)來(lái)保存.
use_loginclass
設(shè)置(為on)的話,sudo將執(zhí)行對(duì)目標(biāo)用戶的登錄類指定的默認(rèn)動(dòng)作----如果存在的話.此選項(xiàng)僅僅在sudo配置時(shí)帶有--with-logincap選項(xiàng)時(shí)才存在.此標(biāo)志默認(rèn)是off.
整數(shù)
passwd_tries
sudo向日志中寫(xiě)入一個(gè)failure并退出之前允許用戶輸入
[color="red"]口令
的次數(shù),默認(rèn)為3.
可以用在布爾上下文中的整數(shù)(integers that can be used in a boolean context)
loglinelen
日志文件每行中的字母數(shù).這個(gè)值用來(lái)決定日志文件中什么時(shí)候折行.這個(gè)選項(xiàng)僅影響sudo的日志,而對(duì)系統(tǒng)日志文件沒(méi)有影響.默認(rèn)值為80(使用0或者取消此選項(xiàng)來(lái)禁止折行).
timestamp_timeout
sudo再次詢問(wèn)
[color="red"]口令
之前逝去的時(shí)間(以分鐘記).默認(rèn)值為5.如果想要總是詢問(wèn)
[color="red"]口令
的話請(qǐng)把此值設(shè)置為0.如果設(shè)置為負(fù)數(shù)的話,用戶的時(shí)間戳永遠(yuǎn)不會(huì)過(guò)期.這可以用來(lái)允許用戶分別使用sudo -v和sudo -k來(lái)建立或者刪除他們自己的時(shí)間戳.
passwd_timeout
sudo的
[color="red"]口令
詢問(wèn)超時(shí)時(shí)間(分鐘記).默認(rèn)為5.設(shè)置為0可以取消
[color="red"]口令
超時(shí).
umask
執(zhí)行命令時(shí)使用的umask值.要保留用戶的umask值的話請(qǐng)取消此選項(xiàng)或者設(shè)置為0777.此選項(xiàng)的默認(rèn)值為0022.
字符串
mailsub
發(fā)送給mailto user的郵件使用的主題.轉(zhuǎn)義字符%h將被擴(kuò)展為機(jī)器的主機(jī)名.默認(rèn)值為"*** SECURITY information for %h ***".
badpass_message
當(dāng)用戶輸入了錯(cuò)誤的
[color="red"]口令
時(shí)顯示的信息.除非設(shè)置了insults的話,默認(rèn)值將為"Sorry, try again."
timestampdir
sudo存儲(chǔ)時(shí)間戳文件的目錄.默認(rèn)值為/var/run/sudo
passprompt
詢問(wèn)
[color="red"]口令
時(shí)的提示.可以被sudo的-p選項(xiàng)或者SUDO_PROMPT環(huán)境變量所覆蓋.這里提供了兩個(gè)轉(zhuǎn)義字符:%u將被擴(kuò)展為用戶的登錄名,而%h將被擴(kuò)展為本地主機(jī)名.此選項(xiàng)的默認(rèn)值為"Password:".
runas_default
使用sudo但沒(méi)有指定-u標(biāo)志時(shí)使用的默認(rèn)用戶.默認(rèn)為root
syslog_goodpri
用戶身份驗(yàn)證成功時(shí)使用的系統(tǒng)日志優(yōu)先級(jí).默認(rèn)為notice
syslog_badpri
用戶身份驗(yàn)證成功時(shí)使用的系統(tǒng)日志優(yōu)先級(jí).默認(rèn)為alert
editor
用冒號(hào)分隔開(kāi)的一個(gè)允許visudo使用的編輯器列表.可能的話visudo將選擇使用和用戶的USER環(huán)境變量相匹配的那個(gè)編輯器,或者是列表中的第一個(gè)存在且可執(zhí)行的編輯器.默認(rèn)值為您系統(tǒng)中vi編輯器的路徑.
可以用在布爾上下文中的字符串(strings that can used in a boolean context)
logfile
sudo日志(不是系統(tǒng)日志)的存放位置.設(shè)置一個(gè)路徑來(lái)打開(kāi)日志功能,取消設(shè)置將關(guān)閉日志功能.(Seting a path turns on logging to a file; negating this option turns it off.)
syslog
如果起用了syslog的話將使用的系統(tǒng)日志設(shè)施(取消此選項(xiàng)來(lái)禁用系統(tǒng)日志記錄)(譯注:原文為:Syslog facility if
syslog is being used for logging (negate to disable syslog
logging)).默認(rèn)為arthpriv.
mailerpath
用來(lái)發(fā)送報(bào)警郵件的郵件程序的路徑.默認(rèn)值是sendmail的路徑.
mailerflags
使用郵件程序時(shí)的標(biāo)記,默認(rèn)為 -t.
mailto
發(fā)送報(bào)警郵件和錯(cuò)誤郵件的目的地址.這個(gè)地址必須用雙引號(hào)引起來(lái),以免sudo解釋"@"符號(hào).默認(rèn)值為root.
exempt_group
在此組中的用戶將不要求
[color="red"]口令
和PATH.此選項(xiàng)默認(rèn)沒(méi)有設(shè)置.
verifypw
此選項(xiàng)控制當(dāng)用戶使用帶有-v選項(xiàng)的sudo時(shí),何時(shí)要求
[color="red"]口令
.它可以有下面可能的值:
all:當(dāng)前主機(jī)上sudoers中所有的用戶條目都必須設(shè)置NOPASSWD標(biāo)志來(lái)避免輸入
[color="red"]口令
.
any:當(dāng)前主機(jī)上sudoers中至少有一個(gè)用戶條目必須設(shè)置NOPASSWD標(biāo)志來(lái)避免輸入
[color="red"]口令
.
never:用戶使用-v標(biāo)志但從不需要輸入
[color="red"]口令
.
always:用戶使用-v標(biāo)志但總是需要輸入
[color="red"]口令
.
默認(rèn)的值是"all".
listpw
此選項(xiàng)控制當(dāng)用戶使用帶有-l選項(xiàng)的sudo時(shí),何時(shí)要求
[color="red"]口令
.它可以有下面可能的值:
all:[/size當(dāng)前主機(jī)上sudoers中所有的用戶條目都必須設(shè)置NOPASSWD標(biāo)志來(lái)避免輸入
[color="red"]口令

.
any:當(dāng)前主機(jī)上sudoers中至少有一個(gè)用戶條目必須設(shè)置NOPASSWD標(biāo)志來(lái)避免輸入
[color="red"]口令
.
never:用戶使用-l標(biāo)志但從不需要輸入
[color="red"]口令
.
always:用戶使用-l標(biāo)志但總是需要輸入
[color="red"]口令
.
默認(rèn)值為"any".
可以在布爾上下文中使用的列表(lists that can be used in a boolean context)
env_check
如果含有"%"或者"/"字符的話將從用戶的環(huán)境中刪除的環(huán)境變量.這將預(yù)防拙劣的程序中printf風(fēng)格的格式所帶來(lái)的傷害.這個(gè)參數(shù)可以是一
個(gè)用雙引號(hào)引起,由空格分隔的列表,或者是一個(gè)不帶引號(hào)的單值.這個(gè)列表可以通過(guò)分別使用"=",+=","-=","!"來(lái)重寫(xiě),增添,刪除或取反.當(dāng)
以root身份執(zhí)行帶-V選項(xiàng)的sudo命令時(shí)會(huì)打印出默認(rèn)需要檢察的環(huán)境變量列表.
env_delete
將從用戶的環(huán)境中刪除的環(huán)境變量.這個(gè)參數(shù)可以是一個(gè)用雙引號(hào)引起,由空格分隔的列表,或者是一個(gè)不帶引號(hào)的單值.這個(gè)列表可以通過(guò)分別使用"=
",+=","-=","!"來(lái)重寫(xiě),增添,刪除或取反.當(dāng)以root身份執(zhí)行帶-V選項(xiàng)的sudo命令時(shí)會(huì)打印出默認(rèn)將被刪除的環(huán)境變量列表.
env_keep
當(dāng)env_reset選項(xiàng)生效時(shí)將在用戶的環(huán)境中保留的環(huán)境變量.這允許對(duì)sudo派生的進(jìn)程的環(huán)境進(jìn)行精密的控制.這個(gè)列表可以通過(guò)分別使用"=",+=","-=","!"來(lái)重寫(xiě),增添,刪除或取反.此列表默認(rèn)沒(méi)有成員.
當(dāng)使用系統(tǒng)日志進(jìn)行日志記錄時(shí),sudo將接受下列值作為系統(tǒng)日志設(shè)施(譯注:原文為When logging via syslog(3),
sudo accepts the following values for the syslog
facility)(syslog參數(shù)的值):authpriv(如果您的
[color="red"]操作系統(tǒng)

持的話),auth,daemon,user,local0,local1,local2,local3,local4,local5,local6和
local7.下列系統(tǒng)日志優(yōu)先級(jí)是被支持的:alert,crit,debug,emerg,err,info,notice和warning.
用戶說(shuō)明(user specification)
User_Spec ::= User_list Host_List '=' Cmnd_Spec_List \
(':' User_Spec)*
Cmnd_Spec_List ::= Cmnd_Spec |
Cmnd_Spec ',' Cmnd_Spec_List
Cmnd_Spec ::= Runas_Spec? ('NOPASSWD:' | 'PASSWD:')? Cmnd
Runas_Spec ::= '(' Runas_List ')'
用戶說(shuō)明決定在一個(gè)特定的主機(jī)上一個(gè)用戶能夠執(zhí)行哪些命令.這些命令默認(rèn)以root身份執(zhí)行,但可以進(jìn)行基于每個(gè)命令的更改.(譯注:原文為By
default, commands are run as root,but this can be changed on a
per-command basis)
讓我們把它分成下面這些部分:
Runas_Spec
Runas_Spec是一個(gè)用括號(hào)括起的一個(gè)簡(jiǎn)單的Runas_List(在上面已經(jīng)定義了),如果您在用戶說(shuō)明中沒(méi)有指定一個(gè)
Runas_Spec的話,將會(huì)使用默認(rèn)的root的Runas_Spec(譯注:這里原文為:If you do not specify a
Runas_Spec in the user specification, a default Runas_Spec of root will
be used).Runas_Spec設(shè)置了他后面所跟命令的默認(rèn)項(xiàng)(譯注:原文為A Runas_Spec sets the default
for commands that follow it,這句話我實(shí)在是不知道怎么翻譯,暫且這么譯吧).對(duì)于下面的條目:
dgb boulder = (operator) /bin/ls, /bin/kill, /usr/bin/who
(譯注:這里應(yīng)該是dgb boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm)
這意味著用戶dgb可以運(yùn)行/binls,/bin/kill和/usr/bin/lprm---但是只能以operator的身份執(zhí)行.例如:
sudo -u operator /bin/ls
在一個(gè)條目的后面改寫(xiě)Runas_Spec也是可能的.如果我們把上面的條目改成這樣:
dgb boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm
這樣用戶dgb執(zhí)行/bin/ls命令是以operator身份,但執(zhí)行/bin/kill和/usr/bin/lprm命令就是以root身份.
NOPASSWD和PASSWD
默認(rèn)地,sudo在用戶執(zhí)行一個(gè)命令前會(huì)驗(yàn)證用戶的身份.通過(guò)NOPASSWD標(biāo)簽可以更改這個(gè)行為.就象Runas_Spec一樣,
NOPASSWD標(biāo)簽給跟在它后面的Cmnd_Spec_List中的命令設(shè)置了一個(gè)默認(rèn)項(xiàng)(譯注:原文是Like a Runas_Spec,
the NOPASSWD tag sets a default for the commands that follow it in the
Cmnd_Spec_List).PASSWD標(biāo)簽可以做相反的事.例如:
ray rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm
這將會(huì)允許用戶ray在不進(jìn)行身份驗(yàn)證的情況下在主機(jī)rushmore上以root身份運(yùn)行/bin/kill,/bin/ls和/usr/bin/lprm命令.如果您想讓ray在不提供
[color="red"]口令
的情況下只是可以運(yùn)行/bin/kill,那么可以修改上面的條目為:
ray rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm
注意,盡管如此,PASSWD標(biāo)簽對(duì)于在exempt_group選項(xiàng)中指定了的組中的用戶無(wú)效.
默認(rèn)地,如果對(duì)當(dāng)前主機(jī)上的某個(gè)用戶的任何一個(gè)條目設(shè)置了NOPASSWD標(biāo)簽的話,他將能夠運(yùn)行sudo -l而不提供
[color="red"]口令
.另外,如果對(duì)屬于當(dāng)前主機(jī)的用戶的所有條目都設(shè)置了NOPASSWD標(biāo)簽的話,這個(gè)用戶就只能運(yùn)行sudo -v而不提供
[color="red"]口令
.(譯
注:前面兩句話的原文是By default, if the NOPASSWD tag is applied to any of the
entries for a user on the current host, he or she will be able to run
sudo -l without a password. Additionally, a user may only run sudo -v
without a password if the NOPASSWD tag is present for all a user's
entries that pertain to the current
host).這個(gè)行為可以通過(guò)設(shè)置verifypw和listpw選項(xiàng)來(lái)更改.
通配符(又稱meta字符)
sudo允許在sudoers中的路徑名和命令行參數(shù)中使用shell風(fēng)格的通配符.通配符匹配是通過(guò)POSIX的fnmatch標(biāo)準(zhǔn)程序?qū)崿F(xiàn)的.注意,這不是正則表達(dá)式.
* 匹配任意一組零個(gè)或者多個(gè)字符
? 匹配任意一個(gè)字符
[...] 匹配任意一個(gè)在大括號(hào)中指定范圍里的字符
[!...] 匹配任何一個(gè)不在大括號(hào)中指定范圍里的字符
\x 任意一個(gè)字符"x"識(shí)別為單純的"x".這用來(lái)轉(zhuǎn)義像"*","?","[","]"和"}"這樣的一些特殊字符
注意,路徑名中的通配符不會(huì)匹配正斜線("/").在匹配命令行參數(shù)時(shí),因?yàn)樾本不被通配符匹配,這使/usr/bin/*匹配/usr/bin/who而不匹配/usr/bin/X11/xterm.
通配符規(guī)則的例外
對(duì)上面的規(guī)則有下面的例外:
"""" 如果空字符串""是sudoers條目中僅有的命令行參數(shù),這意味著這條命令執(zhí)行時(shí)不允許帶有任何參數(shù).
其它的特殊字符和保留字
美元符("#")被用來(lái)指明一條注釋(除非它出現(xiàn)在用戶名上下文中并且后面跟有一個(gè)或多個(gè)數(shù)字,在這種情況下它被作為一個(gè)UID來(lái)對(duì)待).所有的注釋字符和任何的文本,直到一行的結(jié)尾都將被忽略
保留字ALL是ailas中經(jīng)常導(dǎo)致成功匹配的單位.它可以在任何可以使用Cmnd_Alias,User_Alias,
Runas_Alias,
或Host_Alias的地方使用.您不應(yīng)該試圖定義一個(gè)名為ALL的別名,因?yàn)閍leas中的單位將用作您的個(gè)人偏好.請(qǐng)注意,在命令上下文
(command context)中使用ALL是非常危險(xiǎn)的,它允許用戶在系統(tǒng)上運(yùn)行任何命令.
感嘆號(hào)("!")可以在別名中和Cmnd前用作邏輯非操作符.這允許排除一些特定的值.盡管如此,但請(qǐng)注意,聯(lián)合ALL別名中的單位使用"!"
將允許用戶蓄意執(zhí)行罕見(jiàn)的除了少數(shù)以外的所有命令(譯注:原文是Note ,however, that using a ! in
conjunction with the built in ALL ailas to allow a user to run "all but
few" commands rarely works as intended)(參閱下面的"安全要點(diǎn)"一節(jié)).
可以在一行的末尾使用反斜線("\")來(lái)在下一行延續(xù)此行,此時(shí)這兩行將作為完整的一行對(duì)待.
列表元素和用戶說(shuō)明中的特殊語(yǔ)法字符之間的空格是可選的.
下面的字符作為一個(gè)詞的一部分(例如,一個(gè)用戶名或者一個(gè)主機(jī)名)出現(xiàn)時(shí)必需使用反斜線("\")來(lái)轉(zhuǎn)義:"@","!","=",":", ",", "(", ")", "\".
示例
下面是sudoers條目的示例.顯然,一些示例有點(diǎn)不自然.首先,我們定義別名:
# User alias specification
User_Alias FULLTIMERS = millert, mikef, dowdy
User_Alias PARTTIMERS = bostley, jwfox, crawl
User_Alias WEBMASTERS = will, wendy, wim
# Runas alias specification
Runas_Alias OP = root, operator
Runas_Alias DB = oracle, sybase
# Host alias specification
Host_Alias SPARC = bigtime, eclipse, moet, anchor :\
SGI = grolsch, dandelion, black :\
ALPHA = widget, thalamus, foobar :\
HPPA = boa, nag, python
Host_Alias CUNETS = 128.138.0.0/255.255.0.0
Host_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias SERVERS = master, mail, www, ns
Host_Alias CDROM = orion, perseus, hercules
# Cmnd alias specification
Cmnd_Alias DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
/usr/sbin/restore, /usr/sbin/rrestore
Cmnd_Alias KILL = /usr/bin/kill
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias HALT = /usr/sbin/halt, /usr/sbin/fasthalt
Cmnd_Alias REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot
Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
/usr/local/bin/tcsh, /usr/bin/rsh, \
/usr/local/bin/zsh
Cmnd_Alias SU = /usr/bin/su
接下來(lái)我們改寫(xiě)了一些編譯進(jìn)的默認(rèn)值.我們希望sudo在所有情況下使用auth設(shè)施在系統(tǒng)日志中作記錄.我們不想總是輸出初次使用sudo的提示,并且用戶millert使用sudo不需要
[color="red"]口令
.另外,我們?yōu)镾ERVERS Host_Alias中的主機(jī)維護(hù)一個(gè)附加的本地日志文件.并且由于這個(gè)日志需要保存許多年,我們要在日志的每一行中加入年份信息.
# Override built in defaults
Defaults syslog=auth
Defaults:FULLTIMERS !lecture
Defaults:millert !authenticate
Defaults@SERVERS log_year, logfile=/var/log/sudo.log
實(shí)際上決定誰(shuí)能運(yùn)行什么的是用戶說(shuō)明部分:
root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL
我們讓root和wheel組的成員可以在任何主機(jī)上以任何人的身份運(yùn)行任何命令.
FULLTIMERS ALL = NOPASSWD: ALL
專職系統(tǒng)管理員(millert,mikef和dowdy)可以在任何主機(jī)上執(zhí)行任何命令而不需要進(jìn)行身份驗(yàn)證.
PARTTIMERS ALL = ALL
兼職系統(tǒng)管理員(bostley,jwfox和crawl)可以在任何主機(jī)上運(yùn)行任何命令,但他們首先必須進(jìn)行身份驗(yàn)證(因?yàn)檫@個(gè)條目沒(méi)有NOPASSWD標(biāo)簽).
jack CSNETS = ALL
用戶jack可以在CSNETS別名(網(wǎng)絡(luò)128.138.243.0,128.138.204.0和128.138.242.0)中的機(jī)器上運(yùn)
行任何命令.在這些網(wǎng)絡(luò)中,只有128.138.204.0明確的給出了掩碼(用CIDR方式),指明這是個(gè)C類網(wǎng).對(duì)CSNETS中的其他網(wǎng)絡(luò)來(lái)說(shuō),如
果本地主機(jī)的掩碼匹配的話將使用本地主機(jī)的掩碼.
lisa CUNETS = ALL
用戶lisa可以在CUNETS別名(B類網(wǎng)絡(luò)128.138.0.0)中的任何主機(jī)上執(zhí)行任何命令.
operator ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\
/usr/oper/bin/
用戶operator可以執(zhí)行的命令被限制在一個(gè)簡(jiǎn)單的maintenance中.這里就是和備份,殺死進(jìn)程,打印系統(tǒng),關(guān)閉系統(tǒng)和任何在/usr/oper/bin/中的命令.
joe ALL = /usr/bin/su operator
用戶joe只能su成operator.
pete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root
用戶pete可以修改HPPA上除了root以外任何用戶的
[color="red"]口令
.注意,這里人為passwd不會(huì)在命令行上使用多個(gè)用戶名.
bob SPARC = (OP) ALL : SGI = (OP) ALL
用戶可以在SPARC和SGI上以任何在OP Runas_Alias中列出的用戶(root和operator)的身份運(yùn)行任何命令.
jim +biglab = ALL
用戶jim可以在biglab網(wǎng)絡(luò)用戶組中的機(jī)器上運(yùn)行任何命令.因?yàn)閎iglab前面加上了前綴"+",所以sudo知道這是一個(gè)網(wǎng)絡(luò)用戶組.
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
網(wǎng)絡(luò)用戶組secretaries中的用戶需要幫助管理打印機(jī)和進(jìn)行增刪用戶的工作,所以需要允許他們?cè)谌魏螜C(jī)器上執(zhí)行這些命令.
fred ALL = (DB) NOPASSWD: ALL
用戶fred可以在DB Runas_Alias (oracle 或 sybase)上以任何人的身份執(zhí)行任何命令而不需要提供
[color="red"]口令
.
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
用戶john可以在ALPHA上su成除root的任何人,但是不允許他給su加上任何標(biāo)志執(zhí)行.
jen ALL, !SERVERS = ALL
用戶jen可以在除了SERVERS Host_Alias (master, mail, www 和 ns)以外的任何機(jī)器上執(zhí)行任何命令.
jill SERVERS = /usr/bin/, !SU, !SHELLS
用戶jill可以在任何SERVERS Host_Alias中的機(jī)器上運(yùn)行/usr/bin/下除了屬于SU和SHELLS Cmnd_Aliases外的任何命令.
steve CSNETS = (operator) /usr/local/op_commands/
用戶steve可以在任何CSNETS中的機(jī)器上執(zhí)行/usr/local/op_commands/中的所有命令,但是只能以operator的身份.
matt valkyrie = KILL
用戶matt應(yīng)該可以在他自己的工作站valkyrie上殺死掛起的進(jìn)程.
WEBMASTERS www = (www) ALL, (root) /usr/bin/su www
任何在WEBMASTERS User_Alias (will, wendy,和 wim)中的用戶都能夠在主機(jī)www上以www(網(wǎng)頁(yè)的所有者)的身份執(zhí)行任何命令,或者簡(jiǎn)單的su成www.
ALL CDROM = NOPASSWD: /sbin/umount /CDROM,\
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM
所有的用戶都應(yīng)該能夠在 CDROM Host_Alias (orion, perseus, hercules)中的主機(jī)上mount和unmount光盤(pán)驅(qū)動(dòng)器而不需要輸入
[color="red"]口令
.對(duì)用戶來(lái)說(shuō)敲入這么長(zhǎng)的命令有些冗長(zhǎng)而乏味,所以把它封裝在一個(gè)shell腳本中是一個(gè)最佳的選擇.
安全要點(diǎn)
使用"!"來(lái)從ALL中減去命令一般來(lái)說(shuō)不會(huì)產(chǎn)生預(yù)期作用.用戶可以簡(jiǎn)單的通過(guò)把希望執(zhí)行的命令改名執(zhí)行的法子來(lái)繞過(guò)限制.例如:
bill ALL = ALL, !SU, !SHELLS
這并不會(huì)阻止bill執(zhí)行SU和SHELLS中列出的命令.他只需要把這些命令改一個(gè)名字,或者從一個(gè)編輯器或者其他程序中escape到
shell(譯注:原文是use a shell escape from an editor or other
program)就可以運(yùn)行了.所以這種類型的限制至少應(yīng)該經(jīng)過(guò)深思熟慮(并從策略上加強(qiáng)它).
CAVEATS
sudoers必需總是使用visudo命令來(lái)編輯,因?yàn)樗鼤?huì)鎖定文件并且進(jìn)行語(yǔ)法檢察.這強(qiáng)制sudoers擺脫語(yǔ)法錯(cuò)誤,因?yàn)閟udoers有語(yǔ)法錯(cuò)誤時(shí)sudo是不會(huì)運(yùn)行的.
當(dāng)使用機(jī)器的網(wǎng)絡(luò)用戶組時(shí)(與用戶相反),如果您在網(wǎng)絡(luò)用戶組中存貯了完整的主機(jī)名(這經(jīng)常是事實(shí)),您需要讓主機(jī)名像hostname命令的輸出一樣是完整的或者在sudoers中使用fqdn選項(xiàng).
文件
/etc/sudoers 誰(shuí)能作什么的一個(gè)列表
/etc/group 本地組文件
/etc/netgroup 網(wǎng)絡(luò)組文件
參閱
rsh(1), sudo(8), visudo(8), su(1), fnmatch(3).
伯克利發(fā)布第三版 1.6.6 sudoers(5)
//
http://www.leftworld.net
[2005-06-27]
               
               
               

本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/553/showart_367501.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2013-07-06 18:17 |只看該作者
首先感謝上傳了此份文檔,使我從中找到了許多幫助,尤其是有些內(nèi)容的專業(yè)解釋。

但是存在以下問(wèn)題:

1:格式混亂,結(jié)構(gòu)不清晰,尤其換行,縮進(jìn)。
2:內(nèi)容混亂,好多塊的內(nèi)容位置就不對(duì),所以經(jīng)常需要上下翻動(dòng)查資料。

這樣就導(dǎo)致了此文檔的可讀性不是很強(qiáng),查找不是很方便。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP