当前位置: 首页>>技术教程>>正文


如何使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/article/10700.html,未经允许,请勿转载。