分享Linux下的sudo及其配置檔案/etc/sudoers詳細配置

大雄45發表於2020-11-16
導讀 這篇文章主要介紹了詳解 下的sudo及其配置檔案/etc/sudoers的詳細配置的相關資料,需要的朋友可以參考下。
1.sudo介紹

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

它的特性主要有這樣幾點:
  • 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 
##################################################

原文來自: 


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

相關文章