日韩性视频-久久久蜜桃-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文件的写法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美一区二区免费 | 成人午夜又粗又硬又大 | 亚洲AV无码国产精品国产剧情 | 亚洲欧美久久久 | 初高中福利视频网站 | 欧洲亚洲成人 | 国产在线精品自拍 | 精品人妻av一区二区三区 | 成人午夜av在线 | 农村寡妇一区二区三区 | 美女又爽又黄免费 | 日韩欧美一区在线观看 | 亚洲影视一区二区三区 | 在线香蕉视频 | 日韩网站在线 | √天堂中文官网8在线 | 加勒比久久综合 | 精品999久久久 | 青青草手机视频在线观看 | 午夜剧场欧美 | 免费黄网在线观看 | 欧美精产国品一二三区 | 亚洲精品视频免费看 | 91干视频 | 国产xxxx在线 | 一本一道波多野结衣一区二区 | 少妇一边呻吟一边说使劲视频 | 99一级片| 久热久操 | 日日夜夜中文字幕 | 蜜臀99久久精品久久久久小说 | 女性裸体不遮胸图片 | 亚洲美女在线观看 | 黄色片免费在线 | 日韩在线观看视频一区 | 激情视频久久 | 在线免费观看网站入口在哪 | 欧美精品一区二区性色a+v | 天天澡天天狠天天天做 | 在线中文一区 | 国内精品在线观看视频 | 欧美性一区 | 国产网红在线 | 香蕉久久精品日日躁夜夜躁 | 日韩中文字幕观看 | 国产福利一区二区 | 久久久久国产一区二区三区 | 老女人一毛片 | 久久国产麻豆 | 一区免费视频 | 精品伊人久久 | 国产精品三级久久久久久电影 | 亚洲h在线观看 | 特级毛片爽www免费版 | 精品久久久久久久久久岛国gif | 久草视频免费 | 久久久久久久久久久影院 | 西西人体做爰大胆gogo | 91精品系列 | 激情一区二区三区 | 亚洲一区在线电影 | 午夜鲁鲁 | 久久久久成人精品无码中文字幕 | 久久精品99国产国产精 | 久久精品噜噜噜成人 | 777久久| 国产欧美自拍 | 国产最新精品视频 | 自拍偷拍亚洲天堂 | 最近的中文字幕在线看视频 | 日韩免费在线播放 | 男生女生搞鸡视频 | 亚洲免费在线 | 物业福利视频 | 欧美国产中文 | 91精品国自产在线偷拍蜜桃 | 玉女心经 在线 | 免费99精品国产自在在线 | 日本亚洲综合 | 7799精品视频天天看 | 色婷婷色婷婷 | 一级黄色性片 | 97自拍偷拍视频 | av三级网站 | 国产成人在线观看网站 | 亚洲a中文字幕 | 国产一级色 | 亚洲精品国产精品乱码不99 | 欧美片一区二区 | 少妇2做爰交换朴银狐 | 亚洲综合色一区二区 | 精品久久久无码中文字幕 | 欧美人一级淫片a免费播放 西方av在线 | 蜜桃久久精品成人无码av | 日韩欧美国产另类 | 国产一区二区三区电影在线观看 | 日日干夜夜拍 | 午夜a级片 | av大片免费|