linux sudo命令的概念與使用

還不算暈發表於2014-03-08

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使用者增加這一行,

配置完成後,重新開啟會話,使用   sudo vi /etc/hosts,,往裡面增加並儲存測試SUDO是否可用。


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

相關文章