linux sudo命令詳解

2021-10-04 13:38:14 字數 1385 閱讀 9884

首先檢查/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,...