當前位置: 首頁>>技術教程>>正文


如何使super-user權限的使用時間比使用sudo更長?

, , ,

問題描述

有沒有一種方法可以使sudo命令為我授予比其默認時間更長的權限?

當需要安裝許多軟件包時,必須不斷輸入sudo密碼可能會很麻煩,因此,如果存在可以影響其使用期限的命令或配置,那將是很好的選擇。

最佳答案

/etc/sudoers文件中配置了sudo的行為。有timestamp_timeout選項負責在特定時間後重新提示用戶輸入密碼。

man sudoers

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.

要更改該設置,請執行以下操作:

  1. 在終端中運行sudo visudovisudo專用於編輯/etc/sudoers文件,默認情況下使用nano文本編輯器。

  2. 查找以Defaults開頭的行。添加以下行

    Defaults        timestamp_timeout=x
    

    其中x是兩次提示之間您想要的分鍾數

  3. 使用Ctrl + O保存文件

次佳答案

man sudoers

timestamp_timeout
                       Number of minutes that can elapse before sudo will ask
                       for a passwd again.  The timeout may include a frac‐
                       tional component if minute granularity is insufficient,
                       for example 2.5.  The default is 15.  Set this to 0 to
                       always prompt for a password.  If set to a value less
                       than 0 the user's time stamp will never expire.  This
                       can be used to allow users to create or delete their
                       own time stamps via “sudo -v” and “sudo -k” respec‐
                       tively.

如您所見,sudo的默認超時為15分鍾。您可以在/etc/sudoers中更改此值。

您不直接編輯/etc/sudoers,而是使用visudo進行編輯。

man visudo

     visudo edits the sudoers file in a safe fashion, analogous to vipw(8).
     visudo locks the sudoers file against multiple simultaneous edits, pro‐
     vides basic sanity checks, and checks for parse errors.  If the sudoers
     file is currently being edited you will receive a message to try again
     later.

因此,在終端中鍵入sudo visudo,這將在nano text-editor中打開/etc/sudoers文件。

查找以下行:

Defaults    env_reset

並添加timestamp_timeout=X,其中X是要設置的時間(以分鍾為單位)。

因此,例如:

Defaults    env_reset,timestamp_timeout=5

如果指定0,將始終詢問您密碼。如果您指定一個負值,則超時將永遠不會過期。

完成後,保存並退出。

參見RootSudoTimeout

第三種答案

嘗試這個 。

  1. 在終端中運行以下命令:

    sudo visudo
    
  2. 向下滾動到如下所示的行:

    Defaults        env_reset
    
  3. 更改為例如:

    Defaults        env_reset,timestamp_timeout=30
    

將30更改為您希望它在超時之前等待的時間(以分鍾為單位)。如果每次運行sudo都要求輸入密碼,也可以將其更改為0;如果不想輸入密碼,則可以將其更改為-1。按Ctrl + X完成編輯,按Y保存更改,然後按Enter退出。

來源:http://lifehacker.com/make-sudo-sessions-last-longer-in-linux-1221545774

第四種答案

您可以編輯/etc/sudoers文件(使用sudo visudo時要小心)並添加如下行

Defaults:myname timestamp_timeout=15 

其中myname是您的用戶ID。超時值以分鍾為單位。您可以使用值-1永不過期,然後鍵入sudo -k終止身份驗證,因此您需要再次輸入密碼。

或者,您可以添加條目以說一條特定命令根本不需要密碼。

第五種答案

我不敢相信最簡單的命令:

sudo -s

這裏沒有提到。 “-s”開關為您提供了具有root權限的控製台,該控製台一直持續到您退出它為止。無需費心使用默認設置。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10700.html,未經允許,請勿轉載。