如何在没有密码的情况下运行特定的sudo命令?

巴维什·迪万

在一台特定的机器上,我经常需要时不时地运行sudo命令。sudo在大多数情况下,我都可以输入密码

但是,我想在不输入密码的情况下运行三个sudo命令

  • sudo reboot
  • sudo shutdown -r now
  • sudo shutdown -P now

如何从密码保护中排除这些命令sudo

mgd

使用NOPASSWD指令

您可以NOPASSWD/etc/sudoers文件中使用指令

如果您的用户被呼叫,user而您的主机被呼叫,host您可以将这些行添加到/etc/sudoers

user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot

这将允许用户userhost不输入密码的情况下运行所需的命令所有其他sudoed命令仍将需要密码。

中指定的命令sudoers文件必须是完全合格的(即使用该命令运行的绝对路径),如所描述的sudoers手册页提供相对路径被认为是语法错误。

如果命令以结尾/字符结尾并指向目录,则用户将能够在该目录中运行任何命令(但不能在其中的任何子目录中运行)。在以下示例中,用户user可以在目录中运行任何命令/home/someuser/bin/

user host = (root) NOPASSWD: /home/someuser/bin/

注意:始终使用命令visudo编辑sudoers文件,以确保您不会将自己锁定在系统之外,以防万一您不小心将不正确的内容写入sudoers文件中。visudo会将修改后的文件保存到一个临时位置,并且只有sudoers可以正确解析该修改后的文件的情况下,才会覆盖实际文件。

使用/etc/sudoers.d而不是修改/etc/sudoers

作为编辑/etc/sudoers文件的替代方法,您可以在(/etc/sudoers.d例如)中将这两行添加到新文件中/etc/sudoers.d/shutdown这是分离sudo权限的不同更改的一种优雅方法,并且可以使原始sudoers文件保持不变,以便于升级。

注意:同样,您应该使用命令visudo来编辑文件,以确保您不会将自己锁定在系统之外:

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

这还将自动确保正确设置了新文件的所有者和权限。

如果sudoers搞砸了

如果您不visudo习惯于编辑文件,然后不小心弄乱了/etc/sudoers文件或弄乱了文件,/etc/sudoers.d那么您将被锁定sudo

解决的办法可能是修复pkexec替代的文件sudo

解决方法/etc/sudoers

pkexec visudo

解决方法/etc/sudoers.d/shutdown

pkexec visudo -f /etc/sudoers.d/shutdown

如果任何sudoers文件的所有权和/或权限都不正确,则该文件将被忽略,sudo因此您可能还会发现自己在这种情况下被锁定。同样,您可以使用它pkexec来解决此问题。

正确的权限应如下所示:

$ ls -l /etc/sudoers.d/shutdown 
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown

pkexec像这样使用来修复所有权和权限

pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Hubot如何在没有任何命令的情况下正常运行功能?

如何在没有Artisan的情况下运行Laravel?

如何在没有sudo的情况下构建库?

如何在没有sudo的情况下执行'iftop'

如何在没有“ bokeh server --show”命令的情况下运行bokeh服务器?

Docker Run:如何在没有命令的情况下运行Ubuntu:16.04?

如何在没有密码的情况下运行Auth :: logoutOtherDevices()?

在没有密码的情况下执行sudo?

如何在没有“ sudo”的情况下以root用户身份运行程序?

如何在没有密码提示的情况下以root用户身份运行特定程序?

如何在没有密码的情况下运行sudo命令?

允许用户在没有密码的情况下使用sudo

如何在没有密码的情况下远程执行ssh命令和sudo命令

如何在没有sudo的情况下安装库?

如何在没有附加引号的情况下将bash变量作为命令运行?

如何在没有sudo的情况下运行pip(适用于Mac)?没有sudo它是行不通的

如何在没有Snappy的情况下运行OrientDB?

如何在没有提示的情况下将密码传递给net use命令?

如何在没有根密码的情况下运行软件更新?

如何在没有sudo的情况下运行/ usr / bin / Xorg?

如何在没有密码的情况下sudo -i -u user_xx?

如何在没有密码Linux的情况下禁用以root身份运行Firefox?

在终端中,如何在没有事先身份验证的情况下以&结尾运行sudo命令?

sudo su在没有密码提示的情况下运行?

让单个用户在没有 sudo 密码的情况下执行命令

如何在没有 sudo 的情况下从脚本调用超级用户命令

如何在bash上没有sudo命令的情况下获取内存信息

是否可以在没有密码的情况下以 root 身份运行命令并输入 sudo?

如何在没有参数的情况下运行`dotnet lambda deploy-serverless`命令?