在Ubuntu上调整和配置Sudo的8种方法

时间:2020-01-09 10:44:38  来源:igfitidea点击:

像Linux上的大多数东西一样,sudo命令是非常可配置的。我们可以让sudo运行特定命令而无需输入密码,将特定用户限制为仅允许使用的命令,使用sudo运行日志命令,等等。

sudo命令的行为由系统上的/ etc / sudoers文件控制。必须使用visudo命令编辑此命令,该命令执行语法检查以确保我们不会意外破坏文件。

指定具有Sudo权限的用户

我们在安装Ubuntu时创建的用户帐户被标记为管理员帐户,这意味着它可以使用sudo。安装后创建的任何其他用户帐户可以是管理员帐户,也可以是标准用户帐户。标准用户帐户没有sudo权限。

我们可以从Ubuntus用户帐户工具以图形方式控制用户帐户类型。要打开它,请在面板上单击用户名,然后选择"用户帐户"或者在破折号中搜索"用户帐户"。

使Sudo忘记密码

默认情况下,sudo在我们输入密码后会记住15分钟。这就是为什么在快速连续使用sudo执行多个命令时,只需键入一次密码的原因。如果我们要让其他人使用计算机,并且我们想让sudo在下次运行时要求输入密码,请执行以下命令,并且sudo会忘记密码:

sudo –k

总是要求输入密码

例如,如果我们每次使用sudo时都会提示我们,如果其他人定期访问计算机,则可以完全禁用密码记住行为。

与其他sudo设置一样,此设置包含在/ etc / sudoers文件中。在终端中运行visudo命令以打开文件进行编辑:

sudo visudo

尽管使用了该命令的名称,但该命令默认使用对新用户友好的nano编辑器,而不是Ubuntu上的传统vi编辑器。

在文件的其他"默认值"行下面添加以下行:

Defaults timestamp_timeout=0

按Ctrl + O保存文件,然后按Ctrl + X关闭Nano。 Sudo现在将始终提示我们输入密码。

更改密码超时

要设置不同的密码超时,请按照上述步骤操作,例如较长的30分钟或者较短的5分钟,但是请为timestamp_timeout使用不同的值。该数字对应sudo将记住密码的分钟数。要让sudo记住密码5分钟,请添加以下行:

Defaults timestamp_timeout=5

从不要求输入密码

我们还可以使sudo从不要求输入密码,只要我们登录即可,以sudo为前缀的每个命令都将以root权限运行。为此,将以下行添加到sudoers文件中,其中username是用户名:

username ALL=(ALL) NOPASSWD: ALL

我们还可以更改%sudo行,即允许sudo组中的所有用户(也称为管理员用户)使用sudo的行,以使所有Administrator用户不需要密码:

%sudo ALL=(ALL:ALL) NOPASSWD:ALL

在没有密码的情况下运行特定命令

我们还可以指定使用sudo运行时将不需要密码的特定命令。请指定命令的位置,而不是在上面的NOPASSWD之后使用ALL。例如,以下行将允许用户帐户运行不带密码的apt-get和shutdown命令。

username ALL=(ALL) NOPASSWD: /usr/bin/apt-get,/sbin/shutdown

当在脚本中使用sudo运行特定命令时,这特别有用。

允许用户仅运行特定命令

虽然我们可以将特定命令列入黑名单并阻止用户使用sudo运行它们,但这并不是非常有效。例如,我们可以指定用户帐户无法使用sudo运行shutdown命令。但是该用户帐户可以使用sudo运行cp命令,创建shutdown命令的副本,然后使用该副本关闭系统。

一种更有效的方法是将特定命令列入白名单。例如,我们可以授予标准用户帐户使用apt-get和shutdown命令的权限,但不能再使用其他权限。为此,添加以下行,其中standarduser是用户用户名:

standarduser ALL=/usr/bin/apt-get,/sbin/shutdown

以下命令将告诉我们用户可以使用sudo运行哪些命令:

sudo -U standarduser –l

记录Sudo访问

我们可以通过添加以下行来记录所有sudo访问。 / var / log / sudo只是一个例子;我们可以使用任何喜欢的日志文件位置。

Defaults logfile=/var/log/sudo

使用以下命令查看日志文件的内容:

sudo cat /var/log/sudo

请记住,如果用户具有不受限制的sudo访问权限,则该用户可以删除或者修改此文件的内容。用户还可以使用sudo访问根提示符并运行不会记录的命令。当与对系统命令子集具有受限访问权限的用户帐户结合使用时,日志记录功能最有用。