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