在linux系統(tǒng)中,有些普通用戶需要借助root帳號(hào)來執(zhí)行一些操作,但我們并不能把root密碼給普通用戶,就有了sudo
創(chuàng)新互聯(lián)主營(yíng)中方網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都App制作,中方h5微信小程序開發(fā)搭建,中方網(wǎng)站營(yíng)銷推廣歡迎中方等地區(qū)企業(yè)咨詢sudo可以臨時(shí)切換到指定帳號(hào)進(jìn)行操作
使用方法:
sudo [ -u 用戶帳號(hào)] 需要執(zhí)行的命令;切換到root時(shí),可以直接執(zhí)行sudo 執(zhí)行命令 即可;
sudo -l :列出所有可以執(zhí)行的命令
使用條件:
必須以root身份執(zhí)行visudo,添加需要執(zhí)行sudo命令的用戶;
執(zhí)行visudo,實(shí)際上修改的是/etc/sudoers文件;
為什么要使用visudo,而不直接使用vim /etc/sudoers呢?這是因數(shù)visudo在修改完成后可以對(duì)語法進(jìn)行檢查
使用visudo -c進(jìn)行語法檢查,當(dāng)sudoers文件有語法錯(cuò)誤時(shí),所有的sudo命令都無法使用
修改配置:
[root@web1 ~]# visudo
root ALL=(ALL) ALL <==找到這一行
liu ALL=(ALL) ALL <==新增的行,保存退出
用戶帳號(hào):表示系統(tǒng)中哪個(gè)帳號(hào)可以使用sudo命令
第一個(gè)ALL:登錄者來源的主機(jī)名,表示這個(gè)帳號(hào)可以從哪一臺(tái)主機(jī)連接過來,ALL表示任意主機(jī)
第二個(gè)ALL:可切換的身份,表示此帳號(hào)可以切換哪個(gè)帳號(hào)進(jìn)行操作,ALL表示可以切換成任何用戶
第三個(gè)ALL:可執(zhí)行的命令,表示此帳號(hào)可以執(zhí)行哪些命令,ALL表示可以執(zhí)行任何命令;
注意:在大多數(shù)情況下,不能為普通用戶設(shè)置全部命令的權(quán)限,要讓用戶擁有一個(gè)或者幾個(gè)權(quán)時(shí),ALL可以換成此命令的絕對(duì)路徑,有多個(gè)命令時(shí),中間以逗號(hào)分開,但必須是全路徑
比如只有修改密碼的權(quán)限時(shí),但絕對(duì)不能修改root用戶的密碼:
liu ALL=(ALL) !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root
用!(感嘆號(hào))表示排除此命令
進(jìn)行測(cè)試:
結(jié)果:
從上圖中可以看到以普通用戶liu登錄時(shí),執(zhí)行sudo命令創(chuàng)建test2目錄,其屬主和屬組均為root
sudo免密碼執(zhí)行命令:
每次執(zhí)行sodu命令都需要輸入用戶密碼才能執(zhí)行,那怎么可以做到執(zhí)行sudo不輸入密碼呢?
liuwei ALL=(ALL) NOPASSWD:/usr/sbin/useradd
在給定可執(zhí)行的命令時(shí),在前邊添加NOPASSWD
有時(shí)我們需要為很多用戶添加sudo權(quán)限,此時(shí)可以通過組來實(shí)現(xiàn)
前提:
把需要執(zhí)行同樣的權(quán)限的普通用戶,添到同一個(gè)組中
把用戶wei,cui同時(shí)加入到組liu中,此組liu中就有l(wèi)iu,wei,cui3個(gè)普通用戶
修改配置文件:
#visudo 把之前添加的用戶liu獨(dú)有權(quán)限刪除,添加組liu
找到圈中的這一行,把“wheel”改為你自己設(shè)定的組,我這邊改為組liu,保存退出進(jìn)行測(cè)試
檢查語法:
#visudo -c
測(cè)試:
分別切換到用戶liu,wei,cui進(jìn)行測(cè)試 注意:用戶第一次用sudo命令時(shí)會(huì)收到一些提示
查看上面3文件的屬主屬組,可以看到都為root,說明測(cè)試成功
以后如果想要增加或者刪除某個(gè)用戶sudo權(quán)限時(shí),只需要將此用戶添加到或者移除此組就可以了
思考:
使用sudo命令切換用戶,總是提示輸入自己的密碼才可以成功,那有沒有辦法不輸入密碼呢?
找到此行,把前邊的#號(hào)去掉,百分號(hào)后邊添加你需要設(shè)定的組即可
測(cè)試:可以看到用戶組liu中的所有用戶,再執(zhí)行sudo操作時(shí),可以不用輸入密碼了
總結(jié):
要給定sudo權(quán)限的用戶,必須是你信任的用戶;
別名設(shè)置:
用戶或者組的別名 --> User_Alias ADMINS = jsmith,mkike,%groupname (注:組前邊需要添加%)
主機(jī)別名 --> Host_Alias FILESERVERS = fs1,fs2
可以切換的用戶角色別名 --> Runas_Alias OP = root
命令別名 --> Cmnd_Alias SERVICES = /sbin/service,/sbin/chkconfig
什么情況才使用別名?
答:在工作中一般有多個(gè)系統(tǒng)用戶,需要分類,分層次管理用戶的時(shí)候
別名實(shí)際實(shí)例:
工作需求:
開發(fā)人員:User_Alias KAIFA_ADMINS = kaifa01,kaifa02
命令權(quán)限:KAFACMD
身份權(quán)限:KAIFA_ADMINS
運(yùn)維人員:User_Alias OLD_ADMINS = oldboy,oldgirl,%sa
命令權(quán)限:USERCMD,NETMAGCMD,CTRLCMD,DISKCMD
身份權(quán)限:OP1
網(wǎng)絡(luò)工程師:User_Alias OLD_NETADMINS = leo,maya
命令權(quán)限:NETMAGCMD
身份權(quán)限:OP2
#用戶分組 --> 相同崗位的人放在一個(gè)組
User_Alias OLD_ADMINS = oldboy,oldgirl,%sa
User_Alias OLD_NETADMINS = leo,maya
User_Alias KAIFA_ADMINS = kaifa01,kaifa02
#類似命令分組
Cmnd_Alias USERCMD = /usr/sbin/useradd,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,/bin/chown,/bin/chmod
Cmnd_Alias DISKCMD = /sbin/fdisk,/sbin/parted
Cmnd_Alias NETMAGCMD = /sbin/ifconfig,/etc/init.d/network
Cmnd_Alias CTRLCMD = /usr/sbin/reboot,/usr/sbin/halt
Cmnd_Alias KAFACMD = /bin/grep,/usr/bin/tail,/bin/cat
#角色
Runas_Alias OP1 = root,oldboy
Runas_Alias OP2 = root,oldgirl
#授權(quán)
KAIFA_ADMINS ALL=(OP1) KAFACMD
OLD_ADMINS ALL=(OP1) USERCMD,DISKCMD,NETMAGCMD,CTRLCMD
OLD_NETADMINS ALL=(OP2) NETMAGCMD
sudo審計(jì):
只記錄用戶使用sudo時(shí)執(zhí)行的命令;
只需要向/etc/sudoers文件中添加如下內(nèi)容,即可實(shí)現(xiàn)sudo審計(jì)
echo "Defaults logfile=/var/log/sudo.log" >> /etc/sudoers
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。