sudobash
爲了收拾su命令的爛攤子服務器
把某些超級權限分類有針對性受權給指定普通用戶,指定的普通用戶不須要知道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命令的用戶操做
生產環境日誌審計解決方案?
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 + 命令 方式執行受權命令