【技巧】Ubuntu臨時授予用戶sudo權(quán)限,并在一定時間后自動撤銷
轉(zhuǎn)載請注明出處:小鋒學(xué)長生活大爆炸[xfxuezhagn.cn]
目錄
背景說明
開始操作
at指令
背景說明
????????有時候普通用戶需要使用sudo來執(zhí)行一些操作,作為服務(wù)器管理員,需要盯著該用戶使用完后再給他撤銷sudo權(quán)限。當(dāng)用戶多起來的時候,這項工作就很麻煩了。通過自動定時撤銷sudo權(quán)限,當(dāng)我們給完了sudo之后就可以不用管了,甚至還可以做一個sudo權(quán)限申請的腳步,做到自動申請自動撤銷。
開始操作
????????1、授予用戶 sudo 權(quán)限: 添加用戶到 /etc/sudoers
文件或 /etc/sudoers.d/
目錄下的文件。這可以通過 visudo
工具或直接編輯相應(yīng)文件來完成。(不建議直接操作/etc/sudoers)
????????例如,要為用戶名為 username
的用戶授予 sudo 權(quán)限,可以使用以下命令:
echo "username ALL=(ALL:ALL) ALL" | sudo tee -a /etc/sudoers.d/temporary_sudo



????????2、設(shè)置一個計劃任務(wù)來在 1 小時后撤銷權(quán)限: 使用 at
命令可以很容易地設(shè)置這樣的計劃任務(wù)。首先,確保 at
被安裝,還需要啟動 at 守護進程:
sudo apt install at -y
sudo systemctl enable --now atd

????????接著,設(shè)置一個任務(wù)來在 1 小時后刪除先前創(chuàng)建的文件(注意,普通任務(wù)不需要加sudo,但由于這里是要操作/etc目錄,所以at前面需要加上sudo,不然會執(zhí)行失?。?/p>
echo "sudo rm /etc/sudoers.d/temporary_sudo" | sudo at now + 1 hours
????????這樣,用戶將立即獲得 sudo
權(quán)限,然后在 1 小時后,計劃任務(wù)會自動刪除先前創(chuàng)建的文件,從而撤銷該用戶的 sudo
權(quán)限。
????????請注意,當(dāng)對 /etc/sudoers
文件或 /etc/sudoers.d/
目錄中的文件進行更改時,一定要小心,因為不正確的更改可能會導(dǎo)致系統(tǒng)不穩(wěn)定或者失去 sudo
訪問權(quán)限。


at指令
????????at 命令的格式非常簡單,基本格式如下:
at [選項] [時間]

????????at 命令只要指定正確的時間,就可以輸入需要在指定時間執(zhí)行的命令。這個命令可以是系統(tǒng)命令,也可以是 Shell 腳本。
? ? ? ? 使用?atq 命令用于查看當(dāng)前等待運行的工作,atrm 命令后者用于刪除指定的工作。