sodo 的字面意思理解應該是switch user excute a command as another user,用另一個用戶的權限來執行命令。如同電視劇中,皇帝派心腹大臣調查貪官污吏,可是大臣並無皇帝的權利,到了某些時候要使用生殺予奪的權利時,就能夠拿出皇帝御賜的上方寶劍來當表明皇帝來行使這些權利。css
sudo 與su 的區別
有些人很困惑那麼已經有了su,若是要執行沒有權限的命令時,能夠直接切換用戶完成操做,爲何又要開發出這樣一個命令呢。緣由就在於,使用su的時候必需要輸入對應用戶的密碼,若是要使用的是root用戶纔有權限操做的命令,那麼root用戶就面臨着密碼泄露的危險,考慮到系統安全,因而就開發出更易使用和安全的sudo來了。shell
sudo 配置文件路徑
/etc/sudoers
緩存
sudo 配置文件特殊編輯器
編輯sudo 有專有的命令visudo
,這個命令只容許單個用戶進行編輯,而且能夠進行語法檢查。安全
sudo 配置文件的基本格式編輯器
who where=(run_as_who) run_commands
總結下來就是:
誰在哪臺主機以誰的身份運行什麼命令
sudo 配置的別名機制
sudo 的別名有三種,分別是:
用戶別名、地址別名、Runas 別名,命令別名。
User_Alias TEST_USER =jack,rose //用戶之間以分號隔開
Host_Alias TEST_HOST= ALL //所用地址均可以使用sudo
Runas_Alias TEST_Runas //用法和用戶別名同樣
Cmnd_Alias TEST_Cmnd /usr/sbin/useradd, /usr/bin/passwd //命令要寫以爲路徑spa
默認狀況下,第一次使用sudo命令的時候要求輸入密碼,可是第二次就不用輸入了。sudo的密碼可以緩存5分鐘,五分鐘之內使用是不須要輸密碼的,五分鐘事後就要求再次輸入密碼。那麼當咱們有事外出的時候,可使用sudo -k 命令讓本身的密碼失效,那麼當再次使用的時候,就須要重輸密碼了。日誌
若是不想每次使用的時候輸入密碼,那麼能夠添加NOPASSWD 選項:code
118 ## Here is sudo config
119
120 ## User_Alias
121 User_Alias USER_ALLOW=liangzi
122 Host_Alias HOST_ALLOW=192.168.75.188
123 Cmnd_Alias COMMAND_ALLOW=/usr/sbin/useradd
124
125 USER_ALLOW HOST_ALLOW=(root) NOPASSWD:COMMAND_ALLOW
sudo的命令執行日誌信息放在cat /var/log/secure
文件內,能夠按期的去查看一下,以避免執行惡意命令。utf-8