sudo的安装和配置

如果我們有在 wheel 群組中加入一般的使用者,則該使用者可以使用指令 su 並輸入 root 的密碼後變成超級使用者。但如果系統中有多位使用者具有 root 的權限,我們根本不知道是誰使用了 root 的權限、執行了哪些指令;如果我們想針對不同人給予不同的權限,例如一個人只有備份的權限、另一個人只能觀看系統設定,su 也無法達成我們的要求。因此有人發展出 sudo 這個軟體來支援系統的管理。

不過 sudo 並不是 FreeBSD 系統內定的指令,我們必須自己安裝。所幸 FreeBSD 己將該軟體移植到 "port" 中,我們只要執行下列指令即可輕鬆的安裝了。由於在 port 中 sudo 的安裝設定並未打開 sudo 執行指令記錄,如果你希望它能將執行 sudo 的 log 記下來的話,必須先編輯 /usr/ports/security/sudo/Makefile,將 CONFIGURE_ARGS 中的參數 --disable-log-wrap 拿掉。

# cd /usr/ports/security/sudo
# make install clean

安裝完後,我們要先執行 /usr/local/sbin/visudo 以設定 sudo 的設定檔 (/usr/loca/etc/sudoers)。以下簡單說明該設定檔如何設定,詳細說明及範例請參考 /usr/local/etc/sudoers.sample

# Host alias specification(如果你只有一台機器,可以不必設)
Host_Alias     CUNETS = 128.138.0.0/255.255.0.0
Host_Alias     SERVERS = master, mail, www, ns

# User alias specification(把使用者分成群組,也可以不用分)
User_Alias     PARTTIMERS = millert, mikef, dowdy
User_Alias     WEBMASTERS = will, wendy, wim
User_alias     BACKUP = tom, jack

# Cmnd alias specification(把可以執行的指令分成一個個群組)
Cmnd_Alias     READ=/bin/ls,/bin/cat,/usr/bin/tail,/usr/bin/head
Cmnd_Alias     BACKUP=/sbin/dump,/usr/bin/tar,/usr/bin/find, /
               /usr/bin/cpio,/bin/cp,/sbin/mount,/bin/dd

# User privilege specification(設定使用者的權限)
root       ALL=(ALL) ALL
%wheel     ALL = (ALL) ALL

# 表示 jack 在 CUNET 中所有機器都可執行指令群組中 BACKUP 指令
jack       CUNETS = BACKUP

# 表示使用者群組中 PARTTIMERS 群組的人,只能在 SERVERS
#群組中的機器裡執行 READ 群組的指令
PARTTIMERS SERVERS = READ

設定完後,使用者即可執行 sudo <允許的指令> ,使用者只要輸入自己的密碼即可,不必知道 root 的密碼,而且 5 分鐘內再次執行 sudo 時不需再輸入密碼。如果你有打開 log 記錄功能,sudo 執行成功或失敗的 log 都將被記錄到 /var/log/sudo.log 中。詳細說明請閱讀說明 man sudo

 

你可能感兴趣的:(sudo的安装和配置)