日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux sudoers文件的写法

發布時間:2025/3/8 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux sudoers文件的写法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

文件的組成

? ? ? sudoers文件由三部分組成:

  • sudoers的默認配置,主要設置sudo的一些缺省值(本文不會對這些默認配置進行介紹,若有興趣可以自己man 5 sudoers然后搜defaults)
  • alias(別名),可以看作是變量的定義啦,本文也會全面的說說別名的定義。
  • 規則定義,sudoers文件的重點啦,本文會著重說明規則的定義。

Alias(別名)

一共有四種類型的別名,這些類型可以看作它們是數據類型啦哈。

  • User_Alias
  • Runas_Alias
  • Host_Alias
  • Cmnd_Alias

那么要如何定義這些Alias呢?語法如下:

User_Alias NAME=User_ListRunas_Alias NAME=Runas_ListHost_Alias NAME=Host_ListCmnd_Alias NAME=Cmnd_List

?

這里的NAME就可以看作是變量名咯。注意,NAME必須是要以大寫字母開頭,而且只能包含有大寫字母,數字,下劃線呢。那么User_List,Runas_List,Host_List,Cmnd_List又是什么呢?其實就是以“,"分隔的一個數組啦,只不過這四個別名表示的數組內容都會不同啦。

?

現在分別看看User_List,Runas_List,Host_List,Cmnd_List的每個數組元素可以是些什么值吧!

User:[!][username?|#uid?|%groupname?|?+netgroup?|%:nonunix_group?|?User_Alias]Runas:[!][username|#uid?|?%groupname?|?+netgroup?|Runas_Alias]Host:[!][hostname?|?ip_addr?|?network(/netmask)??|??netgroup?|?Host_Alias]Cmnd:[!][commandname|?directory|?"sudoedit"?|?Cmnd_Alias]

?

看看上面的元素名就可以知道大概什么意思了吧?這里著重拿些可能有疑問的出來說說。

嘆號'!'表示取反的意思啦。

每個元素都可以是之前定義過的別名變量啦,所以會有User_List,Runas_List,Host_List,Cmnd_List這些元素啦。

directory表示有可以進入該目錄并執行命令的權限啦

"sudoedit"表示允許用戶使用sudo -e選項。

?

如果還沒搞懂的話,可以看下面的別名定義的例子:

User_Alias USER_TEST=tim,#501,%svn,+webgroup,%:nonunix,!nouserRunas_Alias RUNAS_TEST=tim,#501,%svn,!+webgroupHost_Alias HOST_TEST=!www.baidu.com,localhost,127.0.0.1Cmnd_Alias CMND_TEST=Cmnd_Alias CMDS=/bin/passwd,/bin/ls,/home/svn

User Specification(用戶規則)

用戶規則定義的語法如下:

User_List Host_List=(Runas_List1:Runas_List2) SELinux_Spec Tag_Spec Cmnd_List,...

下面對上面的語法進行說明一下:

User_List(必填項):指的是該規則是針對哪些用戶的。

Host_List(必填項):指的是該規則針對來自哪些主機的用戶。

Runas_List1(可選項):表示可以用sudo -u來切換的用戶

Runas_List2(可選項):表示可以用sudo -g來切換的用戶組

SELinux_Spec(可選項):表示SELinux相關的選項,可選值為ROLE=role 或 TYPE=type。本人對SELinux不太熟,以后再補充這里吧。

Tag_Spec(可選項):用于控制后面Cmnd_List的一些選項啦,可選值有下面這些,具體自己man一下吧,這里就不啰嗦了。

'NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:' |?'SETENV:' | 'NOSETENV:' | 'LOG_INPUT:' | 'NOLOG_INPUT:' |?'LOG_OUTPUT:' | 'NOLOG_OUTPUT:'

...(可選項):表示可以有多個(Runas_List1:Runas_List2) SELinux_Spec Tag_Spec Cmnd_List段的意思了。

Notice:如果Runas_List1和Runas_List2都沒填的話,默認是以root用戶執行

如果不是很理解的話,可以對比著文章后面舉的例子來看下,應該難不倒聰明的我們!

?

sudoers文件下的通配符

通配符只可以用在主機名、文件路徑、命令行的參數列表中。下面是可用的通配符:

*:匹配任意數量的字符

?:匹配一個任意字符

[...]:匹配在范圍內的一個字符

[!...]:匹配不在范圍內的一個字符

\x:用于轉義特殊字符

在使用通配符時有以下的注意點:

1.使用[:alpha:]等通配符時,要轉義冒號':',如:[\:alpha\:]

2.當通配符用于文件路徑時,不能跨'/'匹配,如:/usr/bin/*能匹配/usr/bin/who但不能匹配/usr/bin/X11/xterm

3.如果指令的參數列表是""時,匹配不包含任何參數的指令。

4.ALL這個關鍵字表示匹配所有情況。

?

man sudoers下的例子解析

? ? ? ?

# 用戶別名定義User_Alias ? ? FULLTIMERS = millert, mikef, dowdyUser_Alias ? ? PARTTIMERS = bostley, jwfox, crawlUser_Alias ? ? WEBMASTERS = will, wendy, wim#用戶切換別名定義Runas_Alias ? ?OP = root, operatorRunas_Alias ? ?DB = oracle, sybaseRunas_Alias ? ?ADMINGRP = adm, oper#主機別名定義Host_Alias ? ? SPARC = bigtime, eclipse, moet, anchor :\SGI = grolsch, dandelion, black :\ALPHA = widget, thalamus, foobar :\HPPA = boa, nag,?PythonHost_Alias ? ? CUNETS = 128.138.0.0/255.255.0.0Host_Alias ? ? CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0Host_Alias ? ? SERVERS = master, mail, www, nsHost_Alias ? ? CDROM = orion, perseus, hercules#指令別名定義Cmnd_Alias ? ? DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\/usr/sbin/restore, /usr/sbin/rrestoreCmnd_Alias ? ? KILL = /usr/bin/killCmnd_Alias ? ? PRINTING = /usr/sbin/lpc, /usr/bin/lprmCmnd_Alias ? ? SHUTDOWN = /usr/sbin/shutdownCmnd_Alias ? ? HALT = /usr/sbin/haltCmnd_Alias ? ? REBOOT = /usr/sbin/rebootCmnd_Alias ? ? SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \/usr/local/bin/tcsh, /usr/bin/rsh, \/usr/local/bin/zshCmnd_Alias ? ? SU = /usr/bin/suCmnd_Alias ? ? PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less



#開始定義規則

#root用戶及wheel用戶組下的所有用戶都可以從任何主機連接進來以任意身份執行任意命令

root ? ? ? ? ? ALL = (ALL) ALL %wheel ? ? ? ? ALL = (ALL) ALL


#FULLTIMERS這個用戶別名中定義的用戶可以從任何主機連接進來以任意身份執行任意命令,而且在切換用戶或用戶組時不需要輸入密碼

FULLTIMERS ? ? ALL = NOPASSWD: ALL


#PARTTIMERS這個用戶別名中定義的用戶可以從任何主機連接進來以root身份執行任意命令。

PARTTIMERS ? ? ALL = ALL


#The user jack may run any command on the machines in the CSNETS alias (the networks 128.138.243.0, 128.138.204.0, and 128.138.242.0). ?Of those
? ? ? ?#networks, only 128.138.204.0 has an explicit netmask (in CIDR notation) indicating it is a class C network. ?For the other networks in CSNETS,
? ? ? # the local machine’s netmask will be used during matching.
? ?

jack ? ? ? ? ? CSNETS = ALL

#lisa這個用戶可以從CUNETS中定義的主機連接進來以root身份執行任意指令。

?lisa ? ? ? ? ? CUNETS = ALL


#oprator這個用戶可以從任何主機連接進來以root身份執行DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,sudoedit /etc/printcap, /usr/oper/bin/定義的指令
? ? ? ?

operator ? ? ? ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\sudoedit /etc/printcap, /usr/oper/bin/


#joe這個用戶可以從任何主機連接進來,并且只能執行su operator指令

joe ? ? ? ? ? ?ALL = /usr/bin/su operator

#pete這個用戶可以從HPPA定義的主機中連接進來并以root身份執行passwd的所有命令,除了passwd root

pete ? ? ? ? ? HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

? ? ? ?
#opers這個用戶組下的所有用戶可以從任何主機連接進來,并可以切換至ADMINGRP中定義的用戶組進入/usr/sbin并執行命令

%opers ? ? ? ? ALL = (: ADMINGRP) /usr/sbin


#bob這個用戶可以從SPARC和SGI中定義的主機連接進來,并可以OP定義的用戶執行任意指令?

bob ? ? ? ? ? ?SPARC = (OP) ALL : SGI = (OP) ALL


#jim這個用戶可以從biglab這個netgroup中連接進來,并執行任意指令

jim ? ? ? ? ? ?+biglab = ALL


#secretaries這個netgroup下的所有用戶可以從任意主機連接進來,并以root身份執行PRINTING,/usr/bin/adduser, /usr/bin/rmuser中定義的指令
? ? ? ?

%secretaries ? ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

#fred這個用戶可以從任何主機連接進來并以DB別名定義的用戶來執行所有指令,并且不需要輸入密碼

fred ? ? ? ? ? ALL = (DB) NOPASSWD: ALL

#john這個用戶可以從ALPHA定義的主機中連接進來,并可以以root身份執行su指令,但不能執行su root和使用任何su選項
? ?

john ? ? ? ? ? ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

?#jen這個用戶可以從任何主機(除了SERVERS中定義的主機)連接進來,并以root身份執行任意指令

#jill這個用戶可以從SERVERS定義的主機連接進來,并以root身份進入/usr/bin/執行指令,但不能執行SU和SHELLS中定義的命令

jill ? ? ? ? ? SERVERS = /usr/bin/, !SU, !SHELLS

#steve這個用戶可以從CSNETS中定義的主機連接進來,并以operator這個用戶可以進入/usr/local/op_commands/執行指令

steve ? ? ? ? ?CSNETS = (operator) /usr/local/op_commands/

? ? ? ?

?

轉載于:https://my.oschina.net/ososchina/blog/867400

總結

以上是生活随笔為你收集整理的Linux sudoers文件的写法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩色在线观看 | 四虎精品欧美一区二区免费 | 日韩成人免费在线 | 久久久一级 | www色网| 日韩亚洲国产欧美 | 美女又爽又黄免费视频 | 黑人操亚洲美女 | 久久一区欧美 | 欧美视频一区二区三区四区在线观看 | 久久天天操| 亚洲天天视频 | 免费看欧美成人a片无码 | 黄色网炮 | 亚洲精选av | 亚洲v日韩v综合v精品v | 免费欧美一级片 | 国产日韩综合 | 免费一级a毛片夜夜看 | 国产精品高潮呻吟视频 | 伊人影院综合 | 国产一区不卡在线观看 | 美女十八毛片 | 日日干夜夜草 | 国外成人在线视频 | 国产无遮挡裸体免费视频 | 99看片| 伊人视屏 | 中文字幕人妻精品一区 | 国产美女免费网站 | 国产ts三人妖大战直男 | 五月天狠狠操 | 欧美色视频在线观看 | 久久免费看少妇高潮 | 99久久人妻无码中文字幕系列 | 国产真实乱 | 亚洲高清中文字幕 | 在线观看免费视频a | 新狠狠干 | 高潮毛片 | 严厉高冷老师动漫播放 | 制服 丝袜 激情 欧洲 亚洲 | 三级影片在线播放 | 人人干人人干人人干 | 日韩高清一二三区 | 日批视频免费 | 国产3p露脸普通话对白 | 中文在线免费看视频 | 白浆在线 | 欧美透逼视频 | 久久va| 亚洲一区精品视频在线观看 | 激情爱爱网 | 欧美黄色a级大片 | 欧美日本精品 | 国产富婆一级全黄大片 | 欧美亚洲国产精品 | 超碰在线观看91 | 免费看黄网站在线观看 | 影音先锋中文字幕在线视频 | 毛片网站入口 | 国产精品一品二区三区的使用体验 | 国产绳艺sm调教室论坛 | 国产欧美精品区一区二区三区 | 一区二区三区久久久久 | 欧美黑人一级爽快片淫片高清 | 日本中文在线播放 | 国产视频一区二区在线播放 | 亚洲一区二区三区四区在线 | 永久av在线免费观看 | 天海翼中文字幕 | 亚洲一区二区三区四区视频 | 久草视频在线免费播放 | 亚洲日本护士毛茸茸 | av一区二区三区免费观看 | 欧美在线三级 | 日本黄色三级 | 一级欧美一级日韩 | 精品久久久久久久久久久久久久 | 色图自拍| 亚洲免费网站在线观看 | 韩国女同性做爰三级 | 色哟哟一区二区 | 中文在线视频观看 | 国产黄色在线观看 | 天天爽夜夜爽视频 | 在线不卡毛片 | 阿的白色内裤hd中文 | xxxx色| 好看的毛片 | 99久久亚洲精品日本无码 | 精品一二三四区 | 久久夜夜操妹子 | 91日韩一区二区 | 黄色片在线免费 | 中文字幕第315页 | www.国产免费 | 亚洲日本在线观看视频 | 亚洲老妇色熟女老太 |