如何使超级用户权限比使用sudo更持久?

有没有办法让sudo命令给我一个比默认时间更长的权限?

当需要安装许多软件包时,必须继续输入sudo密码可能会很麻烦,因此如果存在可以影响其使用期限的命令或配置,那将会很好。

sudo行为在/etc/sudoers文件中配置。 有timestamp_timeout选项负责在特定时间后重新提供用户密码。

从男人的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是您在reprompts之间想要的分钟数

  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文本编辑器中打开/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

我无法相信最简单的命令:

 sudo -s 

这里没有提到。 “-s”开关为您提供具有root权限的控制台,该控制权将一直持续到您退出它为止。 无需使用默认设置进行隐藏。

您可以编辑/etc/sudoers文件(使用sudo visudo :注意)并添加一行

 Defaults:myname timestamp_timeout=15 

其中myname是您的用户ID。 超时值以分钟为单位。 您可以使用值-1永不过期,然后键入sudo -k以终止身份validation,因此您需要再次输入密码。

或者您可以添加一个条目来表示特定命令根本不需要密码。

到目前为止,所有其他答案似乎都围绕更改默认超时,在您使用sudo再次输入密码之前需要多长时间。 但是,如果您希望能够以root身份运行命令而不使用sudo预先添加每个命令,则可以使用以下sudo获取root shell:

 sudo -i 

要么

 sudo bash 

要么

 sudo  

虽然所有这些只是以root身份启动单个进程,但所讨论的单个进程恰好是一个shell,它允许您以root身份启动任意数量的其他进程,而无需再输入sudo或密码。 🙂

当然,强大的力量带来了很大的责任,不要做愚蠢的事情等等。

在看到来自修改配置文件的用户的太多问题并且对包装升级后他们的更改被覆盖的原因感到困惑之后,我会注意到如果你想修改timestamp_timeout ,最好通过在/etc/sudoers.d创建一个文件来实现/etc/sudoers.d而不是直接修改/etc/sudoers

所以你应该这样做

 sudo visudo -f /etc/sudoers.d/timeout 

(文件的名称可以是您想要的任何内容,只要它不包含句点( . ),也不以波浪号( ~ )结尾)。 它不会在您选择的编辑器中打开/etc/sudoers ,而是打开/etc/sudoers.d/timeout ,通常作为空文件,因为它不存在。 把你的

 Defaults timestamp_timeout=X 

在其中,并像往常一样保存。 然后,如果出现新版本的/etc/sudoers ,则无需在安装较新版本或保留更改之间进行选择 – 您将自动同时使用这两个版本。