Linux-sudo详解
晚上沒事干,翻看自己以前的筆記,將關于sudo的筆記稍作整理,記錄下來。
sudo可以以另外一個用戶的身份通過某個主機執行某些命令,但是不需要切換到該用戶(有點類似于suid),僅僅可以執行指定的命令(一般來講都是以root身份來執行一些管理類的命令)。
sudo的配置文件/etc/sudoers,該文件只有root用戶和root組可查看:
該文件可以直接vim編輯,但不建議這么做,因為vim不會檢查該文件的語法錯誤,若語法有錯,則有可能造成系統級別的問題。推薦是visudo命令進行編輯。
語法格式:誰可以通過哪些主機連接進來以誰的身份執行哪些命令
who???which_host=(runas)?????command
who:可以使用用戶別名,將某些用戶定義到一個組中統一管理
which_host:可以使用主機別名,將某些主機定義到一個組中統一管理
runas:runas_alias
commad:?cmnd_alis,可以使用命令別名,將某些命令定義到一個組中統一管理
sudo的別名機制,別名的名字全部且只能使用大寫字母,man?sudoers查看關于別名的定義。
用戶別名,可以包含用戶的用戶名,組名(%組名),還可以包含其他已經定義好的用戶別名(!可以取反?!test??除了test用戶之外)
主機別名:可以包含主機名,IP地址,網絡地址或者是其他定義好的主機別名
命令別名:命令要使用絕對路徑,此目錄內的所有命令,或者其他定義好的命令別名
runas別名:用戶名,%組名,其他定義好的runas別名
sudo具體設置:
如:管理員可以通過任何主機以任何用戶的身份執行所有命令
定義jack2用戶可以通過所有主機以root用戶執行useradd,usermod命令
sudo默認情況在用戶第一次輸入密碼后,5分鐘之內不需要再次輸入密碼,sudo?-k命令可以清除密碼緩存,讓此前輸入的認證信息失效:
sudo -l?列出當前用戶可以試用的所有的sudo命令
sudo -k?讓認證信息失效
sudo也可以定義用戶不需要輸入密碼,即可執行命令,在命令之前加入NOPASSWD即可
上面方式表名執行useradd和usermod都不需要密碼,如果現在需要執行useradd不需要密碼但執行usermod需要輸入密碼,則需要以下定義
使用別名:
/var/log/secure記錄所有sudo?相關操作的所有日志
轉載于:https://blog.51cto.com/diannaowa/1673089
總結
以上是生活随笔為你收集整理的Linux-sudo详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF技术剖析之五:利用ASP.NET兼
- 下一篇: Java程序员应该收藏的书籍