sudo 可讓你以其餘用戶的身份執行命令,然而並不是全部用戶都能執行 sudo 僅有 /etc/sudoers 內的用戶才能使用 sudo 。 vim
而 sudo 的配置文件 /etc/sudoers 僅有 root用戶 和 root用戶組能查看該文件。網絡
能夠直接用vim編輯來修改配置,但不建議使用,由於vim不會檢查語法錯誤, 而/etc/sudoers 是有語法的,若是設置錯誤可能會形成系統級別的問題,推薦用 visudo 命令來修改。ide
sudo 的選項spa
-l 列出當前用戶可使用的全部的 sudo 命令3d
-k 讓認證信息失效日誌
/var/log/secure 記錄全部 sudo 相關操做的全部日誌blog
如何使用sudo:get
用普通用戶 tom 執行查詢 /etc/shadow 因爲 tom 不是 root 沒權限查詢it
嘗試經過 sudo 命令來查詢 因爲 tom 不是 /etc/sudoers 內的用戶因此沒法經過 sudo 來執行該命令io
切回 root 用戶 用 visudo 命令 去修改 /etc/sudoers
找到 root ALL=(ALL) ALL 這行 並在這行下新添加或修改已有的配置
4個參數的意義
第一個 表明用戶 who
第二個 登錄者的來源主機名(這個帳號是由哪一個主機鏈接到本主機) which_host
第三個 可切換的身份 runas
第四個 可執行的命令 (命令用絕對路徑來寫) command
ALL 表明任何 主機 身份 命令
語法格式: who which_host=(runas) command
注意:工做上不該該這麼設置 普通用戶擁有徹底的 root 權限簡直是恐怖
sudo 支持別名機制 (注意:別名的名字所有且只能使用大寫字母)
如:
用戶別名:能夠包含用戶的用戶名,組名還能夠包含其餘已經定義好的用戶別名(!能夠取反 !tom 表示除 tom 用戶之外)。
主機別名:能夠包含主機名,IP地址,網絡地址或者其餘定義好的主機別名。
ruans 別名:用戶名,組名,其它定義好的ruans別名
命令別名:命令要用絕對路徑,此目錄下的全部命令,或者其餘定義好的命令別名
配置好 visudo 後再經過 sudo 命令執行查詢 其中輸入密碼是輸入當前用戶的密碼(也就是 tom 用戶的密碼)
也能夠在命令前 添加 NOPASSWD: 修改配置 就能夠不用輸入密碼了
sudo 的時間間隔
若是使用同一帳號在短期內重複操做 sudo 來運行命令,在第二次執行 sudo 時不須要輸入本身的密碼,兩次使用 sudo 的間隔時間在5分鐘內才能夠,如超過則需從新輸入密碼。