在Linux系統服務器中,sudo命令允許我們執行管理任務。然而,你可能已經注意到,你如果一段時間不操作后,需要再次提供sudo密碼。這是因為你的sudo會話有時間限制,默認情況下是15分鐘。如果你在執行sudo命令時加上密碼,你的sudo權限將保持15分鐘。在這15分鐘之后,您將被要求再次為后續的sudo命令提供sudo密碼。
在某些情況下,你可能想改變sudo會話的默認時間限制,即增加或減少它。例如,如果你是唯一一個對系統有訪問權的人,你可以增加sudo會話的超時限制。同樣,你也可以減少sudo會話的超時限制,或者將其設置為0,這樣當你運行sudo命令時,總會被要求輸入密碼。
在本文中,我們將介紹如何指定sudo會話的時間限制。你所需要的只是在/etc/sudoers文件中做一個簡單的配置。
請注意,本文所討論的命令和過程已經在Ubuntu 20.04 LTS(Focal Fossa)上進行了測試。你也可以在老版本的Ubuntu上執行同樣的程序。
1、為Sudo會話指定時間X
在以下過程中,我們將sudo會話的時間限制指定為5分鐘。請按照以下步驟將sudo會話的時間限制指定為所需的任意時間:
首先,使用Ctrl +>
$ sudo visudo
需要提供sudo的密碼。
注意:切勿使用任何文本編輯器編輯/ etc / sudoers文件。而是使用如上所述的visudo命令。原因是,與其他文本編輯器不同,visudo檢查文件中的語法和錯誤。這樣,您可以避免進行任何可能導致嚴重影響的錯誤更改。
默認情況下,/ etc / sudoers文件將在Nano編輯器中打開。在/ etc / sudoers文件中查找以下行:
defaults env_reset
在上一行的末尾,像這樣添加timestamp_timeout = x:
defaults env_reset timestamp_timeout=x
其中x是sudo會話的超時值。例如,要將sudo會話的超時值設置為5分鐘,請將x的值設置為5。
defaults env_reset,timestamp_timeout=5
同時使用Ctrl + O和Ctrl + X保存并關閉文件?,F在嘗試執行任何sudo命令(例如sudo apt update)?,F在等待2至3分鐘,然后再次執行sudo命令,系統將不會要求您輸入密碼。但是,5分鐘后,您運行的任何sudo命令都會提示您輸入sudo密碼。
如果希望系統在每次執行sudo命令時都要求輸入密碼,請將x的值設置為0。類似地,如果希望系統從不要求sudo密碼,則將x的值設置為-1。 。
2、將sudo會話設置為持續到終端關閉
無論終端保持打開狀態多長時間,您都可以通過簡單的命令使sudo會話持續到關閉終端為止。運行此命令后,將不會提示您提供任何需要sudo特權的命令的密碼:
$ sudo -s
3、終止sudo會話
提供sudo密碼后,甚至可以在/ etc / sudoers文件中指定的時間限制之前終止sudo會話。這是這樣做的命令:
$ sudo –k
但是,請記住,如果您之前在終端會話中執行了“ sudo –s”命令,則此命令將不起作用。
在本文中,您學習了如何管理sudo會話的超時限制。編輯/ etc / sudoers文件以延長或縮短超時限制,或使用本文中提到的其他命令終止sudo會話,或使其持續到終端會話持續。