時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
對于比較大的系統(tǒng),Linux管理員會有多人,Linux特殊用戶權(quán)限的分配就是必須來做的,如果每股而安利員都用root來登錄,那么系統(tǒng)管理將變得十分的不安全和可靠。可有將Linux特殊用戶權(quán)限分配給普通用戶來解決這個問題。
我們不可以使用su讓他們直接變成root,因?yàn)檫@些用戶都必須知道root的密碼,這種方法很不安全,而且也不符合我們的分工需求。一般的做法是利用權(quán)限的設(shè)置,依工作性質(zhì)分類,讓特殊身份的用戶成為同一個工作組,并設(shè)置工作組權(quán)限。例如:要wwwadm這位用戶負(fù)責(zé)管理網(wǎng)站數(shù)據(jù),一般Apache Web Server的進(jìn)程httpd的所有者是www,您可以設(shè)置用戶wwwadm與www為同一工作組,并設(shè)置Apache默認(rèn)存放網(wǎng)頁目錄/usr/local/httpd/htdocs的工作組權(quán)限為可讀、可寫、可執(zhí)行,這樣屬于此工作組的每位用戶就可以進(jìn)行網(wǎng)頁的管理了。
但這并不是最好的解決辦法,例如管理員想授予一個普通用戶關(guān)機(jī)的權(quán)限,這時使用上述的辦法就不是很理想。這時您也許會想,我只讓這個用戶可以以root身份執(zhí)行shutdown命令就行了。完全沒錯,可惜在通常的Linux系統(tǒng)中無法實(shí)現(xiàn)這一功能,不過已經(jīng)有了工具可以實(shí)現(xiàn)這樣的功能——sudosudo通過維護(hù)一個特權(quán)到用戶名映射的數(shù)據(jù)庫將特權(quán)分配給不同的用戶,這些特權(quán)可由數(shù)據(jù)庫中所列的一些不同的命令來識別。為了獲得某一特權(quán)項(xiàng),有資格的用戶只需簡單地在命令行輸入sudo與命令名之后,按照提示再次輸入口令(用戶自己的口令,不是root用戶口令)。例如,sudo允許普通用戶格式化磁盤,但是卻沒有賦予其他的root用戶特權(quán)。
1、sudo工具由文件/etc/sudoers進(jìn)行配置,該文件包含所有可以訪問sudo工具的用戶列表并定義了他們的特權(quán)。一個典型的/etc/sudoers條目如下:
liming ALL=(ALL) ALL
這個條目使得用戶liming作為超級用戶訪問所有應(yīng)用程序,如用戶liming需要作為超級用戶運(yùn)行命令,他只需簡單地在命令前加上前綴sudo。因此,要以root用戶的身份執(zhí)行命令format,liming可以輸入如下命令:
# sudo /usr/sbin/useradd sam
注意:命令要寫絕對路徑,/usr/sbin默認(rèn)不在普通用戶的搜索路徑中,或者加入此路徑:PATH=$PATH:/usr/sbin;export PATH。另外,不同系統(tǒng)命令的路徑不盡相同,可以使用命令"whereis 命令名"來查找其路徑。
這時會顯示下面的輸出結(jié)果:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password:
如果liming正確地輸入了口令,命令useradd將會以root用戶身份執(zhí)行。
注意:配置文件/etc/sudoers必須使用命令 Visudo來編輯。
只要把相應(yīng)的用戶名、主機(jī)名和許可的命令列表以標(biāo)準(zhǔn)的格式加入到文件/etc/sudoers,并保存就可以生效,再看一個例子。
2、例子:管理員需要允許gem用戶在主機(jī)sun上執(zhí)行reboot和shutdown命令,在/etc/sudoers中加入:
gem sun=/usr/sbin/reboot,/usr/sbin/shutdown
注意:命令一定要使用絕對路徑,以避免其他目錄的同名命令被執(zhí)行,從而造成安全隱患。
然后保存退出,gem用戶想執(zhí)行reboot命令時,只要在提示符下運(yùn)行下列命令:
]$ sudo /usr/sbin/reboot
輸入正確的密碼,就可以重啟服務(wù)器了。
如果您想對一組用戶進(jìn)行定義,可以在組名前加上%,對其進(jìn)行設(shè)置,如:
%cuug ALL=(ALL) ALL
3、另外,還可以利用別名來簡化配置文件。別名類似組的概念,有用戶別名、主機(jī)別名和命令別名。多個用戶可以首先用一個別名來定義,然后在規(guī)定他們可以執(zhí)行什么命令的時候使用別名就可以了,這個配置對所有用戶都生效。主機(jī)別名和命令別名也是如此。注意使用前先要在/etc/sudoers中定義:User_Alias, Host_Alias, Cmnd_Alias項(xiàng),在其后面加入相應(yīng)的名稱,也以逗號分隔開就可以了,舉例如下:
Host_Alias SERVER=no1
User_Alias ADMINS=liming,gem
Cmnd_Alias SHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/reboot
ADMINS SERVER=SHUTDOWN
4、再看這個例子:
ADMINS ALL=(ALL) NOPASSWD: ALL
表示允許ADMINS不用口令執(zhí)行一切操作,其中"NOPASSWD:"項(xiàng)定義了用戶執(zhí)行操作時不需要輸入口令。
5、sudo命令還可以加上一些參數(shù),完成一些輔助的功能,如
$ sudo –l
會顯示出類似這樣的信息:
User liming may run the following commands on this host:
(root) /usr/sbin/reboot
說明root允許用戶liming執(zhí)行/usr/sbin/reboot命令。這個參數(shù)可以使用戶查看自己目前可以在sudo中執(zhí)行哪些命令。
6、在命令提示符下鍵入sudo命令會列出所有參數(shù),其他一些參數(shù)如下:
-V 顯示版本編號。
-h 顯示sudo命令的使用參數(shù)。
-v 因?yàn)閟udo在第一次執(zhí)行時或是在N分鐘內(nèi)沒有執(zhí)行(N預(yù)設(shè)為5)會詢問密碼。這個參數(shù)是重新做一次確認(rèn),如果超過N分鐘,也會問密碼。
-k 將會強(qiáng)迫使用者在下一次執(zhí)行sudo時詢問密碼(不論有沒有超過N分鐘)。
-b 將要執(zhí)行的命令放在背景執(zhí)行。
-p prompt 可以更改問密碼的提示語,其中%u會替換為使用者的賬號名稱,%h會顯示主機(jī)名稱。
-u username/#uid 不加此參數(shù),代表要以root的身份執(zhí)行命令,而加了此參數(shù),可以以username的身份執(zhí)行命令(#uid為該username的UID)。
-s 執(zhí)行環(huán)境變量中的 SHELL 所指定的 Shell ,或是 /etc/passwd 里所指定的 Shell。
-H 將環(huán)境變量中的HOME(宿主目錄)指定為要變更身份的使用者的宿主目錄。(如不加-u參數(shù)就是系統(tǒng)管理者root。)
要以系統(tǒng)管理者身份(或以-u更改為其他人)執(zhí)行的命令。
Linux特殊用戶權(quán)限的分配可以幫助我們更好、更安全的管理系統(tǒng)。
關(guān)鍵詞標(biāo)簽:Linux特殊用戶權(quán)限
相關(guān)閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內(nèi)存型號 linux tc實(shí)現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機(jī)、重啟、注銷 命令 查看linux服務(wù)器硬盤IO讀寫負(fù)載