Linux上sudo的使用技巧與使用障礙
現(xiàn)在,許多Linux用戶都熟悉sudo。Ubuntu在普及sudo上做了不少工作,強迫而非鼓勵用戶轉換到root帳號安裝軟件和執(zhí)行其他管理任務。但是關于sudo,還有許多是用戶和管理員應當知曉的。
關于Linux命令行請大家參考51CTO特別專題:Linux命令行閉關修煉札記
許多用戶不甚知曉的是sudo可以用來以任何用戶身份執(zhí)行命令,而不單是root用戶。在經驗豐富的管理員手里,sudo可用來建立細粒度的權限,授予用戶執(zhí)行一些管理任務的權限卻不用洞門大開。讓我們來看看利用sudo控制系統(tǒng)訪問權限且用戶依然能保有效率的一些***實踐吧。
記住,你必須使用visudo命令來編輯/etc/sudoers文件。
授予信任的用戶以完全訪問權限,讓他們能以任何用戶身份執(zhí)行任何命令,這個辦法看上去既誘人又簡單。請將這種誘惑拒之門外,因為你想要將訪問權限限制到可能的***限度。
1.限定帳號切換:只要有一絲可能,就不要配置sudo允許用戶切換到其他帳號。作為替代,可嘗試配置sudo允許用戶以他們需要用來操作的用戶身份執(zhí)行特定命令。例如,用戶需要安裝軟件了,可允許他們以root用戶身份運行RPM或APT,但不用轉換為root用戶。
2.不要使用ALL:最常見的錯誤就是授予ALL權限——這意味著可以訪問所有命令、訪問所有用戶,或者訪問其它任何權限排列。雖然權限鎖定耗時費力,但這樣的麻煩值得一受。
3.分割sudoers:如果有許多系統(tǒng)要管理,又不想復制同樣的/etc/sudoers文件到所有系統(tǒng),那么可以將sudoers文件分割成幾塊,并用特定的sudo配置調用include文件。例如,如果想在管理Apache和MySQL時使用同一套指令,就可以分出一個獨立的sudo.mysql文件,并使用include指令從主sudoers文件調用它。
4.善用組:如果可能,按組授權,而不是按單個用戶授權。例如,有一個admin組具有管理軟件包和更新的管理特權。在這種情況下,用不著每增加或刪除一個用戶就編輯sudoers文件——只需確保在admin組中對該用戶合適地管理和增加/刪除就行了。
5.超時設置:確保有合適的超時設置。太短的話,用戶會很快感到灰心喪氣。好辦法是設置為5分鐘左右。
6.遵從正確路徑:通過在sudo中指定secure_path指令鎖定二進制文件的路徑——確保用戶不能在secure_path之外執(zhí)行命令。
7.將日志記錄到其他文件:默認情況下,sudo可能將日志與其它系統(tǒng)消息一同記錄在一個普通的messages日志文件中。對單用戶系統(tǒng)如Ubuntu桌面而言,這是可接受的方案,但是對服務器也這么做可不妙。配置sudo以使其擁有自己的日志文件,這樣sudo的使用和sudoers的變化更為透明。
哪些地方sudo不能用
是的,sudo是個強大的工具,但是要配置好它不容易,而且難于維護。如果有經驗的管理員在系統(tǒng)不多的情況下使用,它是實現(xiàn)基于角色訪問控制的完備方法。不過如果是更大型的企業(yè),擁有數(shù)十名IT人員和幾十乃至幾百服務器的情形,sudo的權限很快就展露無遺??梢允褂闷渌ぞ邽閟udo提供支持。一種方法是使用配置框架如Puppet來跨多系統(tǒng)管理sudo配置。對那些主要基于Linux和Unix的企業(yè)來說這會是特別有效的,盡管Puppet的學習曲線可能有點陡峭。
倘若企業(yè)已經在混合了Linux和Windows服務器的網絡里部署了Microsoft Active Directory(活動目錄),那么也可以使用Likewise Enterprise將Linux和Unix系統(tǒng)納入Active Directory管理。這樣不僅可將Linux和Unix登錄和Active Directory可信網絡掛鉤,而且也能在網絡中對所有服務器管理sudo配置。
可以找到其他工具來協(xié)助補充sudo,以提供更為健壯的特權用戶管理。重要的一點是評估網絡并確定是否sudo獨力就能滿足需要。對于小企業(yè)來說,sudo往往夠好了——如果能按照***實踐來做并充分了解sudo配置的話。如果未能正確管理sudo,幾乎比簡單地共享root信任權還要糟,因為它提供的是錯誤的安全感。懂得怎么使用sudo,并按照這些***實踐來做,那么你就可以去悠哉游哉,大快朵頤了。
【編輯推薦】