在root用戶下執(zhí)行visudo,相當(dāng)于vi /etc/sudoers
eg.限制run用戶的rm權(quán)限(不需要密碼),同時(shí)限制所有用戶通過sudo su切換到root,但是允許run用戶通過sudo su切換到root下
#ALL不能寫在最后,否則!/bin/su仍然會(huì)對(duì)所有用戶生效
echo 'ALL? ? ALL=(ALL) NOPASSWD:ALL,!/bin/rm,!/bin/su' >> /etc/sudoers
echo 'run? ? ALL=(ALL) NOPASSWD:ALL,!/bin/rm,/bin/su' >> /etc/sudoers
eg.設(shè)置某個(gè)用戶組的權(quán)限
##############################
擴(kuò)展:外部命令和內(nèi)部命令
sudo只能執(zhí)行諸如創(chuàng)建、啟動(dòng)等外部命令,不能執(zhí)行內(nèi)部命令;
比如說執(zhí)行sudo cd ..... 這時(shí)候會(huì)提示command not found
再比如說執(zhí)行sudo mkdir ...... 這時(shí)候能正常執(zhí)行
內(nèi)部命令:屬于shell程序的一部分,是在linux系統(tǒng)加載運(yùn)行shell時(shí)就駐留在內(nèi)存中的命令(通過/root/.bashrc /etc/profile去調(diào)取PATH路徑)
外部命令:系統(tǒng)加載時(shí)不隨系統(tǒng)加載進(jìn)內(nèi)存,需要時(shí)才調(diào)用
判斷命令是否為內(nèi)部命令:
enable -a可以看到所有的內(nèi)部命令
此外enable 命令,如果結(jié)果顯示為 “命令is a shell builtin”則表明該命令為內(nèi)部;其他結(jié)果表示該命令為外部命令
諸如cd那種內(nèi)部命令,直接敲就行了,有權(quán)限就執(zhí)行,否則就只能通過改權(quán)限來執(zhí)行,想使用sudo cd 某個(gè)無權(quán)限路徑是徒勞的
##############################