首先檢查/var/db/sudo下是否有時間戳檔案,並檢查是否已經超過五分鐘?如果未超過五分鐘【超過五分鐘,使用者需要輸入口令】,檢查/etc/sudoers配置檔案是否有執行sudo和執行相應命令的許可權 如果有許可權則執行命令。
visudo 【可以檢查語法】 = vim /etc/sudoers【不會檢查語法】
sudo許可權配置說明
使用者或組
授權角色
可以執行的命令
user
all = (all:all)
1 all 2 nopasswd:all (相當於root)
user
all = (all:all)
/user/sbin/useradd ,/usr/sbin/userdel
一般不要授權all 不然當前使用者 sudo su -root 可以以root身份操作伺服器,許可權過大
同時,使用者如果sed命令許可權過大時,使用者也可以通過sed修改sudo檔案來改變自己許可權
舉例: sudo sed -i "99a, user all=(all:all) nopasswd:all" 通過sed修改自己許可權進而操控整個伺服器。
sudo -l :檢視當前使用者可執行的sudo許可權
sudo -k :刪除時間戳
/etc/sudoers 可以給使用者或組,主機,切換的使用者角色,或者命令起別名
什麼時候需要用別名:
工作中與一般有多個系統使用者,需要分類,分層次管理使用者的時候。
舉例如下
1) 授權規則中所有all 字串必須為大寫字母
2) 執行執行的命令是有順序的,從測試的結果看,命令的順序是從後向前,即把禁止執行的命令放在允許執行的命令後面:
如:/usr/sbin/*,/sbin/*,!/usr/sbin/visudo,!/sbin/fdisk ,前面的為允許,後面的為禁止
3) 一行內容超長可以用"\" 斜線換行
4) "!" 表示非,就是命令取反的意思,即禁止執行命令。
1
Linux sudo命令詳解
sudo 語法 who which host whom command 誰能以誰的身份,在那些主機上執行那些命令 visudo hadoop all root usr sbin useradd 1 別名 alias 都以大寫字母定義 host alias 定義主機別名,使用,分隔 user alia...
Linux sudo 命令詳解
前文說到建立新使用者的必要以及如何建立新使用者。那麼如果不使用 root 賬號,在所有者為 root 的目錄下,就沒有辦法執行mkdir等命令了嗎?當然不是,我們可以使用sudo。首先看下這個命令的介紹 sudo命令用來以其他身份來執行命令,預設的身份為root。在 etc sudoers中設定了可...
linux sudo許可權分配
背景 linux的安全很大程度上依賴於許可權的分配,而目前線上機器sudo許可權的分配統一以all的形式分配,很容易因為誤操作而造成一些不可恢復的錯誤,因此現在需要重新細化sudo許可權,以保障linux環境的安全。原理 linux etc sudoers中已為我們提供了許可權細化的example,...