sudo是linux系統管理指令,是容許系統管理員讓普通用戶執行一些或者所有的root命令的一個工具,如halt,reboot,su等等。這樣不只減小了root用戶的登陸 和管理時間,一樣也提升了安全性。sudo不是對shell的一個代替,它是面向每一個命令的。(百度百科)linux
su是最簡單的身份切換命令,通常都是su - username,而後輸入password就ok了,root用su至其餘用戶無須密碼;但非root用戶切換時須要密碼。切換到root可使用su -和su - root。shell
編輯配置文件的方式vim
# sudoedit /etc/sudoers
# vim /etc/sudoers
# visudo
配置文件: /etc/sudoers, /etc/sudoers.d/
時間戳文件: /var/db/sudo
日誌文件: /var/log/secure
配置文件支持使用通配符glob:centos
? :任意單一字符 * :匹配任意長度字符 [wxc]:匹配其中一個字符 [!wxc]:除了這三個字符的其它字符 \x : 轉義 [[alpha]] :字母 示例: /bin/ls [[alpha]]*
配置文件規則有兩類安全
user: 運行命令者的身份
host: 經過哪些主機
(runas): 以哪一個用戶的身份
command: 運行哪些命令 網絡
sudo受權示例user1 ALL=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/usermod
ide
sudo -u centos 切換身份 -V 顯示版本信息等配置信息 -u user 默認爲root -l 列出當前用戶可使用的全部sudo命令 -v 再延長密碼有效期限5分鐘,更新時間戳 -k 認證信息失效,清除時間戳(1970-01-01),下次須要從新輸密碼 -b 在後臺執行指令
man幫助文件顯示該參數的正確含義:
#jack能夠運行任何命令在定義地CSNET(128.138.243.0, 128.138.242.0和128.138.204.0/24的子網)中,不過注意前兩個不須要匹配子網掩碼由於是本地主機地址,而最後一個必須匹配掩碼由於是網絡地址。
jack CSNETS = ALL
#lisa能夠運行任何命令在定義爲CUNETS(128.138.0.0)的子網中主機上。
lisa CUNETS = ALL工具