首頁 > 運維 > linux運維 > 主體

詳解Linux下的sudo及其設定檔/etc/sudoers的詳細配置

黄舟
發布: 2017-06-04 11:18:33
原創
2034 人瀏覽過

這篇文章主要介紹了詳解Linux下的sudo及其設定檔/etc/sudoers的詳細配置的相關資料,需要的朋友可以參考下

詳解Linux下的sudo及其設定檔/etc/sudoers的詳細設定

1.sudo介紹

sudo是linux下常用的允許普通用戶使用超級用戶權限的工具,允許系統管理員讓普通用戶執行一些或全部的root命令,如halt,reboot,su等等。這樣不僅減少了root使用者的登陸 和管理時間,同樣也提高了安全性。 Sudo不是對shell的一個代替,它是面向每個指令的。

它的特性主要有這樣幾點:

  § sudo能夠限制使用者只在某台主機上執行某些指令。

  § sudo提供了豐富的日誌,詳細地記錄了每個使用者做了什麼。它能夠將日誌傳到中心主機或日誌伺服器。

  § sudo使用時間戳檔案來執行類似的「檢票」系統。當使用者呼叫sudo並且輸入它的密碼時,使用者獲得了一張存活期為5分鐘的票(這個值可以在編譯的時候改變)。

  § sudo的設定檔是sudoers文件,它允許系統管理員集中的管理使用者的使用權限和使用的主機。它所存放的位置預設是在/etc/sudoers,屬性必須為0411。

2.設定檔/etc/sudoers

它的主要設定檔是sudoers,linux下通常在/etc目錄下,如果是solaris,缺省不裝sudo的,編譯安裝後通常在安裝目錄的etc目錄下,不過不管sudoers檔在哪兒,sudo都提供了一個編輯該檔的指令:visudo來對該檔案進行修改。強烈建議使用該指令修改 sudoers,因為它會幫你校驗檔案設定是否正確,如果不正確,在儲存退出時就會提示你哪段設定出錯的。

言歸正傳,以下介紹如何配置sudoers

先寫sudoers的缺省配置:

############################################################# 
# sudoers file. 
# 
# This file MUST be edited with the 'visudo' command as root. 
# 
# See the sudoers man page for the details on how to write a sudoers file. 
# 

# Host alias specification 

# User alias specification 

# Cmnd alias specification 

# Defaults specification 

# User privilege specification 
root  ALL=(ALL) ALL 

# Uncomment to allow people in group wheel to run all commands 
# %wheel    ALL=(ALL)    ALL 

# Same thing without a password 
# %wheel    ALL=(ALL)    NOPASSWD: ALL 

# Samples 
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom 
# %users localhost=/sbin/shutdown -h now 
##################################################################
登入後複製

1. 最簡單的配置,讓普通用戶support具有root的所有權限

執行visudo之後,可以看見缺省只有一個設定:

#root    ALL=(ALL) ALL

#那麼你就在下邊再加一條配置:

support ALL=(ALL) ALL

這樣,一般使用者support就能夠執行root權限的所有指令

以support使用者登入之後,執行:

#sudo su -

##然後輸入support使用者自己的密碼,就可以切換成root使用者了

2. 讓一般使用者support只能在某幾台伺服器上,執行root能執行的某些指令


#首先需要設定一些Alias,這樣在下面設定權限時,會方便一些,不用寫大段大段的設定。 Alias主要分成4種 

Host_Alias 
Cmnd_Alias 
User_Alias 
Runas_Alias
登入後複製

1) 配置Host_Alias:就是主機的列表


Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3

2) 配置Cmnd_Alias:就是允許執行的命令的列表


Cmnd_Alias      COMMAND_FLAG = command1, command2, command3

3) 配置User_Alias:就是具有

sudo權限的使用者的清單

User_Alias USER_FLAG = user1, user2, user3

4)配置Runas_Alias:就是使用者以什麼身分執行(例如root,或oracle)的清單


#Runas_Alias RUNAS_FLAG = operator1, operator2, operator3

#5) 設定權限

設定權限的格式如下:


USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG

如果不需要密碼驗證的話,則按照這樣的格式來配置


USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG

#設定範例: 

############################################################################
# sudoers file. 
# 
# This file MUST be edited with the 'visudo' command as root. 
# 
# See the sudoers man page for the details on how to write a sudoers file. 
# 

# Host alias specification 
Host_Alias   EPG = 192.168.1.1, 192.168.1.2 

# User alias specification 

# Cmnd alias specification 
Cmnd_Alias   SQUID = /opt/vtbin/squid_refresh, /sbin/service, /bin/rm 

# Defaults specification 

# User privilege specification 
root  ALL=(ALL) ALL 
support EPG=(ALL) NOPASSWD: SQUID 

# Uncomment to allow people in group wheel to run all commands 
# %wheel    ALL=(ALL)    ALL 

# Same thing without a password 
# %wheel    ALL=(ALL)    NOPASSWD: ALL 

# Samples 
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom 
# %users localhost=/sbin/shutdown -h now 
##################################################
登入後複製

以上是詳解Linux下的sudo及其設定檔/etc/sudoers的詳細配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!