- 論壇徽章:
- 0
|
可能在日常的系統(tǒng)管理中,經(jīng)常會(huì)遇到諸如此類的問題:監(jiān)控人員需要運(yùn)行一些命令來查看或者對系統(tǒng)做一些修改,但這些命令只有root用戶才有權(quán)限。但實(shí)際上,又不能讓該人員知道root的密碼。于是很多人經(jīng)常使用chmod命令來修改這些命令的權(quán)限和宿主,甚至通過修改用戶的UID來實(shí)現(xiàn)。但以上這些辦法都是一種“后患無窮”的臨時(shí)辦法。因?yàn)槟悴恢佬薷臋?quán)限和宿主以后,將會(huì)給系統(tǒng)帶來怎樣的結(jié)果。
基于以上各種問題的困難,于是Sudo這款軟件就產(chǎn)生了。
1. Sudo軟件的安裝
在以下站點(diǎn)可以下載:
http://h20338.www2.hp.com/hpux11i/cache/324414-0-0-0-121.html
在下載的時(shí)候,需要確認(rèn)操作系統(tǒng)類型,用uname -a或者machinfo命令來確認(rèn)。
下載完以后,來安裝Sudo軟件。
例如我將該軟件放在/tmp目錄下,因此我可以用以下命令來安裝:
#swinstall -s /tmp/ixSudo_A.08.00-1.6.8p12.001_HP-UX_B.11.23_IA+PA.depot
安裝完成以后確認(rèn)已經(jīng)能夠找到該軟件:
#swlist -l bundle | grep -i sudo
ixSudo A.08.00-1.6.8p12.001 Super User Do
2. 配置Sudo軟件
Sudo軟件的配置很簡單,因?yàn)樗粻可娴揭粋(gè)配置文件:/etc/sudoers
讓我們先來看一下缺省的/etc/sudoers文件:
#cat /etc/sudoers
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# Runas alias specification
# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
實(shí)在是相當(dāng)?shù)暮唵瘟恕?br />
/etc/sudoers的配置分為兩類:
a. 別名定義
其中包含了alias的,就是別名定義的部分。其中別名定義并不是必須的,但為了管理方便,還是建議采用別名管理的方式。別名使用的好處,看到后面自然就明白了。
別名的基本語法是:Alias_Type NAME = item1, item2, ...
或者是:Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
建議采用第一種,對于要定義多個(gè)別名,就定義成多行的,便于管理
b. 授權(quán)
其中授權(quán)是Sudo中必須要配置的。Sudo權(quán)限管理的精華就在于此。其實(shí)簡單來說,Sudo的權(quán)限管理方式是采用了su的權(quán)限管理方式,它讓該用戶在運(yùn)行需要特定權(quán)限命令的時(shí)候su到擁有該特定權(quán)限的用戶執(zhí)行該命令,在執(zhí)行完成以后自動(dòng)退出該用戶的權(quán)限,這樣就避免了我們su到root用戶以后,除了這些命令,我們還能操作其他命令的漏洞。
授權(quán)的基本語法是:授權(quán)用戶 主機(jī)=命令動(dòng)作
3. 詳解/etc/sudoers文件
在我們學(xué)會(huì)編輯/etc/sudoers文件之前,記住一件事情:Sudo軟件是要求使用visudo這條命令來編輯/etc/sudoers文件的。然而本人也嘗試過使用vi來編輯,而且也是成功的。
3.1 定義別名
Host alias:定義主機(jī)別名
User alias:定義用戶別名。其中用戶別名的定義,即可以是單個(gè)的用戶,也可以是用戶組(此時(shí)用戶組的前面必須要加“%”號)
Cmnd alias:定義命令別名
Runas alias:這里Runas別名的定義,是指“目標(biāo)用戶”,就是想要切換到哪個(gè)用戶的別名定義
為了盡量簡單,我自己將/etc/sudoers的別名部分定義如下:
Host_Alias MACHINE01=localhost,goodgirl,15.70.146.115
User_Alias SYSADMIN=crystal
Cmnd_Alias DISOP=/usr/sbin/vgdisplay
Runas_Alias OP=root
3.2 授權(quán)
對授權(quán)的定義如下:
crystal MACHINE01=(OP) NOPASSWD:DISOP
此時(shí),我們可以到crystal的權(quán)限,然后用sudo -l命令來查看能夠使用sudo運(yùn)行那些命令:
#su - crystal
$sudo -l
User crystal may run the following commands on this host:
(root) NOPASSWD: /usr/sbin/vgdisplay
于是此時(shí),我們就可以使用如下命令來查看VG00的信息了:
$sudo /usr/sbin/vgdisplay vg00
4. Sudo常用的一些參數(shù)
例如以上,我們就在crystal這個(gè)用戶權(quán)限下使用了sudo -l命令來查看該用戶能使用sudo命令來操作那些權(quán)限的命令。
除此之外,它還有一些常用的參數(shù):
sudo -V
顯示版本
sudo -l
顯示出自己(執(zhí)行 sudo 的使用者)的權(quán)限
sudo -v
因?yàn)?sudo 在第一次執(zhí)行時(shí)或是在 N 分鐘內(nèi)沒有執(zhí)行(N 預(yù)設(shè)為五)會(huì)問密碼,這個(gè)參數(shù)是重新做一次確認(rèn),如果超過 N 分鐘,也會(huì)問密碼。這里N默認(rèn)是5。
sudo -k
將會(huì)強(qiáng)迫使用者在下一次執(zhí)行 sudo 時(shí)問密碼(不論有沒有超過 N 分鐘)
總結(jié):
總的來說,Sudo這個(gè)工具的配置還是很簡單的,并且給我們的管理帶來很大的便利。在遇到用戶一些特殊權(quán)限要求的時(shí)候,建議先不要修改系統(tǒng)文件、命令的默認(rèn)權(quán)限,采用Sudo來進(jìn)行管理,會(huì)讓系統(tǒng)更加安全穩(wěn)定一些。
這并不是Sudo一個(gè)完整的教程,而僅僅是一個(gè)簡單的例子。更加強(qiáng)大的功能,以后再繼續(xù)探討。
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/12718/showart_281470.html |
|