以root使用者執行命令

pingley發表於2012-02-29
以root使用者執行命令
出於安全因素的考慮,SA不會給你root賬戶的password,但是可以允許你以root使用者執行某些命令。可以使用visudo 編輯/etc/sudoers檔案,visudo提供了一個安全的方式,他將鎖住sudoers檔案不允許多個使用者同時編輯他,還會程式條目的語法正確性檢查。
使用visudo在/etc/sudoers中加入:oracle ALL=(ALL) ALL
然後執行groupadd命令.
[oracle@zeng ~]$ sudo groupadd test
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.
[sudo] password for oracle: 
系統會提示你輸入你的賬戶密碼,而不是root使用者的密碼。當你下次執行sudo使用特權命令的時候,就不需要再輸入自己的賬戶密碼了(預設是5分鐘之內)。
SA也可以在/etc/sudoers中指定若干DBA需要執行的命令。而不是所有的root特權命令。
使用visudo在/etc/sudoers中加入:
oracle ALL=/usr/sbin/groupadd,/usr/sbin/useradd 並刪除oracle ALL=(ALL) ALL,儲存退出。可以使用sudo -l命令顯示,使用者可以執行的root特權命令。
[oracle@zeng ~]$ sudo -l
User oracle may run the following commands on this host:
    (root) /usr/sbin/groupadd, (root) /usr/sbin/useradd
SA透過編輯/etc/sudoers可以暫時的給需要使用某些root特權命令的使用者授權root許可權,當其他使用者使用完以後可以再次編輯/etc/sudoers檔案刪除不適當的條目。透過這樣的方法就可以保護root密碼不外洩。
使用sudo的另外一個好處是提供了可審計的方式,當使用sudo命令的時候,相關的日誌資訊將會記錄在/var/log目錄下的日誌檔案中。並且還可以指定日誌檔案存放的位置,比如在/etc/sudoers檔案中加入
Defaults logfile=/var/log/sudolog
則使用sudo的日誌資訊將會存在在/var/log/sudolog檔案中。
[oracle@zeng ~]$ sudo useradd hello
[sudo] password for oracle: 
[root@zeng ~]# ll /var/log/sudolog
-rw-------. 1 root oinstall 106 Feb 29 14:57 /var/log/sudolog
[root@zeng ~]# vi /var/log/sudolog
Feb 29 14:57:47 : oracle : TTY=pts/0 ; PWD=/home/oracle ; USER=root ;
    COMMAND=/usr/sbin/useradd hello
審計資訊一目瞭然。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-717413/,如需轉載,請註明出處,否則將追究法律責任。

相關文章