linux_sudo命令

sudobash

       爲了收拾su命令的爛攤子服務器

  1. 普通用戶要切換root,必需要知道root密碼,那麼至關於人人都有了核按鈕,那是絕對不容許的
  2. 用su切換到root,沒法對是誰要求root權限的身份進行控制,拿到root權限就能夠得到超級用戶的全部權限,隨心所欲,更改root密碼,讓真正的root管理員無法管理

  把某些超級權限分類有針對性受權給指定普通用戶,指定的普通用戶不須要知道root密碼就能夠獲得root受權的操做,集權式管理ui

 

visudo  編輯/etc/sudoers文件,有語法檢查spa

/etc/sudoers設計

  root    ALL=(ALL)       ALL           用戶名、容許ip機器名單、容許切換用戶名單、命令絕對位置日誌

需求:server

  給 beimen 一個useradd的命令權限blog

which useradd    # 輸出useradd命令絕對路徑
visudo           # 進入編輯配置文件,會檢查語法


# 按格式寫入 beimen  ALL=(ALL)       /usr/sbin/useradd

# 用戶組 機器=(受權使用哪一個角色的權限)

# 當有多條命令用逗號隔開,還能夠 NOPASSORD:ALL,不要密碼登陸

  

  

su - beimen    # 切換到beimen角色
sudo -l        # /查看擁有的 sudo權限,須要輸入當前用戶密碼,有效期爲5分鐘,/vaf/db/sudo
sudo useradd chuixue        # 添加用戶吹雪

經過sudo受權管理系統: 讓用戶權限最小化原則,還能夠審計用戶使用sudo的提權操做命令ip

sudo命令相關參數:class

       -l     查看當前用戶受權命令

       -c 語法檢查,每次visudo以後,經過 visudo -c 進行語法檢查

       -u    指定某個身份用戶執行

       -v    檢驗時間戳

       -k    刪除時間戳

主機別名:

  Host_Alias

  生產環境使用ALL,實際上是邏輯上的主機組,多臺服務器共享一個 /etc/suders時候會用到這個主機別名,受權在那個主機上生效,一個配置文件在多個主機上使用,如今都是單機

用戶別名:

  User_Alias

  當用戶組和用戶比較大時候,組前面須要添加%,當對用戶別名受權權限時候,至關於給這一類用戶和組受權

用戶身份別名:

  Runas_Alias

  sudo執行能夠切換的身份,通常爲root

命令別名:

  Cmnd_Alias

  將命令分類,經過別名能夠受權多個指定的命令

什麼狀況下使用別名?

  工做中通常有多個系統用戶,須要分類、分層次管理用戶的時候

  把用戶和組進行分類,各自對應不一樣的別名,把命令依據須要對應的權限範圍分類,而後將這兩個類進行連線

  分爲身份權限和命令權限,按崗位需求進行受權

什麼是sudo日誌審計?

       並不記錄普通用戶的普通操做,而是記錄那些sudo命令的用戶操做

生產環境日誌審計解決方案?

  1. sudo配合rsyslog服務,進行日誌審計
  2. bash解釋器程序裏嵌入一個監視器
  3. 齊治堡壘機,商業軟件
  4. 開源跳板機,jumpserver和CrazyEye

sudo日誌審計:

rpm -qa sudo rsyslog         # 查詢是否安裝

echo -e "Defaults\tlogfile=/var/log/sudo.log" >> /etc/sudoers      # 追加一行

su - beimen          # 切換到beimen用戶下

sudo useradd chuixue        # 執行sudo命令,添加用戶,須要輸入密碼

su -                             # 切換到root用戶

cat /var/log/sudo.log      # 查看 beimen使用sudo的記錄,不管是成功執行仍是沒有成功執行的名

# 將會看到beimen用戶添加用戶日誌,時間,執行的命令等,假如三次密碼輸入錯誤也會加入日誌,執行沒有權限也會加入日誌,只要是經過sudo執行的命令都會記錄

 

別名總結:

  1. sudo命令是給普通用戶進行受權root才能執行的命令

  2. 生產場景下,使用監控軟件 或使用 sudo配合rsyslog進行sudo權限進行審計

echo -e "Defaults\tlogfile=/var/log/sudo.log" >> /etc/sudoers 
cat /var/log/sudo.log        # 查看sudo命令日誌

  3. 經過visudo編輯 /etc/sudoers文件並會有語法檢查

  4. 經過主機別名、用戶別名、命令別名、用戶身份別名,按照部門須要進行更加精確的權限命令設計,別名都要大寫,組前要加%,多個命令或用戶用 , 隔開

  5. 普通用戶經過 sudo + 命令 方式執行受權命令

相關文章
相關標籤/搜索