linux无密码sudo,在Linux系统中运行没有sudo密码的特定命令
本文介紹在Linux操作系統中運行沒有sudo密碼的特定命令的方法。
背景
我在AWS上部署了Ubuntu系統上的腳本,此腳本的主要目的是檢查特定服務是否以固定間隔運行(確切地說每隔一分鐘),并且如果由于任何原因而停止,則自動啟動該服務,但問題是我需要sudo權限來啟動服務,你可能已經知道,我們應該在運行sudo用戶時提供密碼,但我不想這樣做,我真正想要做的是以無密碼的形式運行sudo服務,如果你遇到這樣的情況,在這個簡短的文章中,我將教你如何在類Unix操作系統中運行沒有sudo密碼的特定命令(也可以參考Linux系統中sudo命令的10個技巧一文)。
看看下面的例子:
$ sudo mkdir /ostechnix
[sudo] password for sk:
正如你在上面的屏幕截圖中看到的,我需要在root(/)文件夾中創建名為ostechnix的目錄時提供sudo密碼,每當我們嘗試使用sudo權限執行命令時,我們都必須輸入密碼,但是,在我的場景中,我不想提供sudo密碼,這是我在Linux機器上運行沒有密碼的sudo命令所做的。
在Linux中運行沒有sudo密碼的特定命令
出于任何原因,如果你希望允許用戶在不提供sudo密碼的情況下運行特定命令,則需要在sudoers文件中添加該命令。
我希望名為sk的用戶執行mkdir命令而不提供sudo密碼,讓我們看看如何做到這一點。
編輯sudoers文件:
$ sudo visudo
在文件末尾添加以下行:
sk ALL=NOPASSWD:/bin/mkdir
這里,sk是用戶名,根據上面的行,用戶sk可以從任何終端運行'mkdir'命令,沒有sudo密碼。
可以使用逗號分隔值添加其他命令(例如chmod),如下所示:
sk ALL=NOPASSWD:/bin/mkdir,/bin/chmod
保存并關閉文件,注銷(或重啟)你的系統,現在,以普通用戶“sk”身份登錄并嘗試使用sudo運行這些命令,看看會發生什么:
$ sudo mkdir /dir1
看到?即使我使用sudo權限運行'mkdir'命令,也沒有密碼提示,從現在開始,用戶sk在運行'mkdir'命令時無需輸入sudo密碼。
運行除sudoers文件中添加的那些命令之外的所有其他命令時,系統將提示你輸入sudo密碼。
讓我們用sudo運行另一個命令:
$ sudo apt update
看到?此命令提示我輸入sudo密碼。
如果你不希望此命令提示你詢問sudo密碼,請編輯sudoers文件:
$ sudo visudo
在visudo文件中添加'apt'命令,如下所示:
sk ALL=NOPASSWD: /bin/mkdir,/usr/bin/apt
你是否注意到apt二進制可執行文件路徑與mkdir不同?是的,你必須提供正確的可執行文件路徑,要查找任何命令的可執行文件路徑,例如'apt',請使用如下所示的'whereis'命令:
$ whereis apt
apt: /usr/bin/apt /usr/lib/apt /etc/apt /usr/share/man/man8/apt.8.gz
如你所見,apt命令的可執行文件是/usr/bin/apt,因此我將其添加到sudoers文件中。
就像我已經提到的,你可以使用逗號分隔值添加任意數量的命令,完成后保存并關閉sudoers文件。注銷并再次登錄到你的系統。
現在,檢查你是否能夠使用sudo前綴運行命令而不使用密碼:
$ sudo apt update
看到?即使我用sudo運行它,apt命令也沒有問我密碼。
這是另一個例子,如果要運行特定服務,例如apache2,請按如下所示添加它:
sk ALL=NOPASSWD:/bin/mkdir,/usr/bin/apt,/bin systemctl restart apache2
現在,用戶可以在沒有sudo密碼的情況下運行“sudo systemctl restart apache2”命令。
在上述情況下,我可以對特定命令重新進行身份驗證嗎?答案:是的。只需刪除添加的命令即可,注銷并重新登錄。
或者,你可以在命令前添加“PASSWD:”指令,請看下面的例子。
添加/修改以下行,如下所示:
sk ALL=NOPASSWD:/bin/mkdir,/bin/chmod,PASSWD:/usr/bin/apt
在這種情況下,用戶sk可以運行'mkdir'和'chmod'命令而無需輸入sudo密碼,但是,他必須在運行'apt'命令時提供sudo密碼。
結語
應用此方法時應該非常小心,這種方法可能具有相當的破壞性,例如,如果你允許用戶在沒有sudo密碼的情況下執行'rm'命令,他們可能會意外或故意刪除重要內容。
相關主題
總結
以上是生活随笔為你收集整理的linux无密码sudo,在Linux系统中运行没有sudo密码的特定命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux脚本的数据输出到excel,使
- 下一篇: linux按时间升序排列文件,Linux