日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux无密码sudo,在Linux系统中运行没有sudo密码的特定命令

發布時間:2024/10/5 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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密码的特定命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。