1.sudo介紹
sudo是linux下常用的允許普通用戶使用超級用戶權限的工具,允許系統管理員讓普通用戶執行一些或者全部的root命令,如halt,reboot,su等等。這樣不僅減少了root用戶的登陸和管理時間,同樣也提高了安全性。Sudo不是對shell的一個代替,它是面向每個命令的。它的特性主要有這樣幾點:
sudo能夠限制用戶只在某台主機上運行某些命令。
sudo提供了豐富的日志,詳細地記錄了每個用戶干了什麼。它能夠將日志傳到中心主機或者日志服務器。
sudo使用時間戳文件--日志 來執行類似的“檢票”系統。當用戶調用sudo並且輸入它的密碼時,用戶獲得了一張存活期為5分鐘的票(這個值可以在編譯的時候改變)。
sudo的配置文件是sudoers文件,它允許系統管理員集中的管理用戶的使用權限和使用的主機。它所存放的位置默認是在/etc/sudoers,屬性必須為0411。
2.下面詳細解釋配置實例:
[root@ocm1 ~]# rpm -qa|grep sudo --查詢是否已經安裝SUDO,一般是安裝了的。
sudo-1.6.9p17-5.el5
[root@ocm1 ~]# visudo ---root使用visudo會默認打開/etc/sudoers文件,
root ALL=(ALL) ALL ---系統默認只有這一行
oracle ALL=(ALL) ALL ----為ORACLE用戶增加這一行,
3.配置中可能碰到的問題:
1、主機名配置錯誤導致sudo不能執行和日志紀錄。
錯誤提示:Sorry, user test is not allowed to execute '/bin/cat /etc/sudoers' as root on
localhost.localdomain.
解決:將其中的localhost改為真實主機名字或IP即可
test localhost=/sbin/cat /etc/sudoers
Defaults@localhost log_host /var/log/sudo.log
2、命令別名列表中命令錯誤導致sudo不能執行
錯誤提示:[jackyu@localhost jackyu]$ sudo cat /etc/sudoers
Sorry, user jackyu is not allowed to execute '/bin/cat /etc/sudoers' as root on
localhost.localdomain.
解決:由於在Cmnd alias裡定義的時候命令書寫有誤(Cmnd_Alias CAT = /bin/cat -n /etc/sudoers).
執行:sudo cat -n /etc/sudoers