`sudo` 是在 Linux 和 Unix 操作系統(tǒng)中使用的命令,用于以超級(jí)用戶或管理員的身份運(yùn)行其他命令。`sudo` 命令可以讓普通用戶在執(zhí)行需要特權(quán)的操作時(shí),臨時(shí)獲取管理員權(quán)限,而無需切換到 root 用戶。
`sudo` 的作用是在于提高系統(tǒng)安全性。通常情況下,為了保護(hù)系統(tǒng)的安全性,Linux 和 Unix 操作系統(tǒng)會(huì)將 root 用戶的權(quán)限限制為必要時(shí)才使用,而普通用戶只能訪問自己的文件和系統(tǒng)資源。使用 `sudo` 命令可以讓普通用戶在必要時(shí)暫時(shí)獲得 root 用戶的權(quán)限,執(zhí)行需要特權(quán)的操作,而不必將整個(gè)系統(tǒng)暴露給普通用戶。
使用 `sudo` 命令時(shí),需要輸入當(dāng)前用戶的密碼,以確認(rèn)用戶的身份。如果用戶沒有獲得 `sudo` 權(quán)限,使用 `sudo` 命令時(shí)將會(huì)提示用戶輸入管理員密碼。
第一步:安裝sudo
CentOS
yuminstallsudo-y
Ubuntu/Debian
apt-getinstallsudo-y
FreeBSD
cd/usr/ports/security/sudo/&&makeinstallclean
或者
pkginstallsudo
第二步:創(chuàng)建sudo用戶
sudo用戶就是在Linux操作系統(tǒng)中的一個(gè)普通用戶。下面以用戶名zhaomu為例,創(chuàng)建一個(gè)普通用戶。
CentOS/Ubuntu/Debian/FreeBSD
adduserzhaomu
第三步:把用戶添加到wheel組中
wheel組是一個(gè)限制用戶以管理員身份執(zhí)行的用戶組,只有這個(gè)用戶組里的用戶才可以執(zhí)行sudo命令。在Ubuntu/Debian操作系統(tǒng)中,sudo組通常用來替代wheel組的作用。
CentOS
usermod-aGwheelzhaomu
Ubuntu/Debian
usermod-aGsudozhaomu
FreeBSD
pwgroupmodwheel-mzhaomu
第四步:配置sudoers
sudo的配置文件是/etc/sudoers,我們需要確保該配置文件沒有問題,這樣才能正常執(zhí)行sudo命令。
CentOS/Ubuntu/Debian/FreeBSD
vi/etc/sudoers
或者
visudo
找到如下代碼:
#Allowmembersofgroupsudotoexecuteanycommand
%sudoALL=(ALL:ALL)ALL
請(qǐng)確保你使用的Linux云服務(wù)器也是這樣設(shè)置的。注意:有些Linux系統(tǒng)并不是%sudo,而是%wheel,這也是沒有問題的。
第五步:重啟SSH服務(wù)
如果你修改了/etc/sudoers文件,需要重啟SSH服務(wù)使之生效。
CentOS 6
/etc/init.d/sshdrestart
CentOS 7
systemctlrestartsshd.service
Ubuntu/Debian
/etc/init.d/sshdrestart
FreeBSD
/etc/rc.d/sshdstart
第六步:測(cè)試
完成之前的操作之后,請(qǐng)退出遠(yuǎn)程登錄,再次以sudo用戶的身份登錄系統(tǒng),執(zhí)行以下命令測(cè)試sudo是否配置正確。
sudouptime
sudowhoami
其中sudo whoami應(yīng)該返回root。
執(zhí)行以下任一條命令,將會(huì)從sudo用戶切換到root用戶。
sudosu-
sudo-i
sudo-S
第七步:禁止root用戶登陸
經(jīng)過測(cè)試,如果一切正常,就可以執(zhí)行最后一步了,也就是禁止root用戶登錄。我們需要編輯SSH的配置文件。
sudovi/etc/ssh/sshd_config
使用:w/命令搜索以下代碼,刪除這行代碼前面的注釋#,并把值設(shè)置為no。
PermitRootLoginno
接下來,參照第五步的說明重啟SSH服務(wù)。嘗試用root用戶登錄系統(tǒng),如果無法登錄,說明設(shè)置成功了。