`
younglibin
  • 浏览: 1207725 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

让用户在执行sudo的时候不输入密码

 
阅读更多

在 文件 /etc/sudoers 文件中修改 

例如 libin 用户 不需要输入密码:

libin  ALL=NOPASSWD :ALL

 

 

 

admin    ALL=(ALL) ALL

 

 

admin    ALL = NOPASSWD: ALL

 

admin    ALL=(ALL) PASSWD: ALL

 

通常我们并不以root身份登录,但是当我们执行某些命令 (command)时需要用到root权限,我们通常都是用"sudo command"来执行command。由于使用Ubuntu,所以经常都都用sudo,而使用sudo时,又得输入密码,所以我就寻找sudo不输入密码的方法。前阵子google了一下,很容容易找到一个方法,但是对其不够理解,今天,仔细研究了一下/etc/sudoers这个文件,对于如何实现自己的需求就非常清楚了。网上说看到的资料往往写得不清楚,所以我根据自己的需求好好整理了一下。

假设我的用户名为jay(属于 admin组),使sudo不用密码的方法如下。

  运行命令:sudo visudo 或者 sudo vi /etc/sudoers,如果vi来编辑,则保存时记得用"wq!"强制保存,否则会提示只读不能保存的。

  就会编辑/etc/sudoers这个文件。 默认情况我们会看到有"%admin ALL=(ALL) ALL"一句话,就是允许admin组在所有主机上执行所有命令,当然是需要passwd的。

  1. 如果想把admin组的用户都sudo不用密码那么可以将这一行换为:"%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL"即可。

  2. 如果仅仅想让jay用户sudo不需密码,则可添加"jay ALL = NOPASSWD: ALL"这样一行。

  3. 如果让jay用户sudo不用密码即可执行某几个命令,可这样写"jay ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser"

  4. 欲知其他更多配置方式,请运行"man sudoers"看帮助文档吧。

注意:我自己的一个配置没生效,找原因还找了阵子,写到这里吧。

我添加"jay ALL = NOPASSWD: ALL"这样一行;但是,jay执行sudo时还是需要输入密码,这是为什么?

原来是,我这一行在"%admin ALL=(ALL) ALL"组策略之前前,后面的组配置覆盖了前面的配置,而jay属于admin组,所以需要密码。

这时,只需要将%admin行用#注释掉即可。OK!然后立马就生效了,可能执行sudo时系统都会去读取/etc/sudoers的,所以立即就生效了。

 

另外,附带公司某服务器的一个/etc/sudoers配置:

Defaults    env_reset

Defaults syslog=auth

Defaults log_year,logfile=/var/log/sudo.log

User_Alias ABC = abc

Cmnd_Alias DEFAULT=/bin/*,/sbin/ldconfig,/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel,/bin/rpm,/usr/bin/yum,/sbin/service,/sbin/chkconfig,sudoedit /etc/rc.local,sudoedit /etc/hosts,sudoedit /etc/ld.so.conf,/bin/mount,sudoedit /etc/exports,/usr/bin/passwd [!-]*,!/usr/bin/passwd root,/bin/su - [!-]*,!/bin/su - root,!/bin/su root,/bin/bash,/usr/sbin/dmidecode,/usr/sbin/lsof,/usr/bin/du,/usr/bin/python,/usr/sbin/xm,sudoedit /etc/profile,sudoedit /etc/bashrc,/usr/bin/make,sudoedit /etc/security/limits.conf,/etc/init.d/*,/usr/bin/ruby

ABC ALL=(ALL)NOPASSWD:DEFAULT

转自:http://renyongjie668.blog.163.com/blog/static/1600531201066102017514/

 

通过修改/etc/sudoers

sudo vi /etc/sudoers

把/etc/sudoers里面最后一行

%admin ALL=(ALL)

改为

%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL

然后强制保存 wq 就OK

 

上面说的并不准确,要注意以下几点。

 

编辑/etc/sudoers文件使用“超级用户终端”,而不能使用普通的终端。“超级用户终端”启动通过右键“编辑菜单”命令添加。

 

编辑完之后使用wq!而不是wq退出

 

分享到:
评论

相关推荐

    linux编写bash shell脚本文件.sh 自动输入密码.在脚本中使用sudo命令,将密码保存在脚本中,不需要手动输入密码

    这将允许名为`username`的用户在不输入密码的情况下执行`/path/to/command`。 需要注意的是,修改`sudoers`文件需要格外小心,因为它直接影响系统的安全性。务必确保只对必要的命令赋予无密码执行权限,并且限制...

    030101配置用户使用sudo无需密码

    #1.root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则) #2.欲切换的身份与执行者的身份相同,不需要输入密码 3./etc/sudoers文件设置为允许用户在不输入该用户的密码的情况下使用...

    sudo提权自动输入密码--java执行交互式命令

    参考了java版的expect4j,expectj的原理,进行了极大的简化,可完成基本的功能: 1,运行java代码,执行交互式命令 2,sudo提权,自动输入密码(echo "password" | sudo -S mkdir /opt/test)

    Linux用户配置sudo权限(visudo)的方法

    5. 如果`sudo`命令的目标用户与执行用户相同,那么也不需要输入密码。 `visudo`是用于编辑`/etc/sudoers`文件的安全方法。它使用`vi`编辑器,并在保存退出时检查文件的语法,以防止因人为错误导致的配置问题。如果...

    Python-SUDO通过叫喊来执行bash命令

    然而,这种方法的一个主要问题是需要用户交互,即在执行`sudo`命令时输入密码。这在无头或自动化场景中可能不适用。为了解决这个问题,你可以考虑以下两种方法: 1. 使用`visudo`编辑`/etc/sudoers`文件,为特定的...

    利用管道实现sudo命令免输入密码的方法

    然而,通常情况下,执行`sudo`命令时会要求用户输入密码以确认身份,这在自动化任务或需要频繁使用`sudo`的情况下可能会带来不便。本文将详细介绍如何利用管道(pipe)实现`sudo`命令免输入密码的方法。 首先,理解...

    如何在Linux环境为用户添加sudo权限

    - 示例2:如果你想让lin用户无密码重启nagios服务,可以添加规则`lin ALL=NOPASSWD:/etc/init.d/nagios restart`,`NOPASSWD:`表示运行该命令时不需输入密码。 - 示例3:如果希望lin用户执行任何命令都不用输入...

    sudo应用的详细阐述

    `NOPASSWD`选项表示用户不需要输入密码,而如果省略,则需要用户在执行sudo命令时提供密码。 通过使用sudo,系统管理员可以精确地分配权限,确保每个管理员只能执行他们职责范围内的任务,从而提高安全性。此外,...

    Linux命令su、sudo、sudo su、sudo -i使用和区别.doc

    sudo命令则允许用户以其他用户(通常为root)的身份执行单个命令,而不需要知道该用户的密码。用户需要输入自己的密码,因为sudo的权限是基于用户配置的。在大多数系统中,sudo执行的命令会有时间限制,比如Ubuntu...

    Linux 中不输入密码运行 sudo 命令的方法

    默认情况下,执行`sudo`命令时,系统会要求输入对应用户的密码,以确保安全性。然而,在某些特定场景下,例如自动化脚本或无人值守的任务,避免每次运行`sudo`命令时输入密码可能是必要的。本文将详细介绍如何配置...

    su和sudo的区别

    用户界面中通常会有权限提示,要求用户输入密码以执行需要管理员权限的任务。 在多用户环境中,`sudo`通常被认为比`su`更安全,因为它允许更精细的权限控制。管理员可以通过配置文件限制每个用户的权限,避免将root...

    linux的sudo详解

    4. **凭据缓存**:为了提高效率,`sudo`支持凭据缓存,即用户在一段时间内无需重复输入密码即可多次运行命令。默认情况下,`sudoers`策略会将凭据缓存5分钟。 5. **命令执行范围**:`sudo`适用于多种Linux发行版,...

    sudo用法详解

    一旦认证成功,用户将在一段时间内(通常5分钟)可以继续运行sudo命令,而无需再次输入密码。 2. **执行单个命令**:`sudo -c "command"` 或 `sudo -s "command"`,运行完指定的命令后,sudo会返回到原始用户。 3....

    linux脚本命令sudo 不手动输入密码回车,sudo命令直接携带密码

    在日常操作中,当我们需要执行需要管理员权限的任务时,通常会使用`sudo`,随后系统会提示输入用户的密码。然而,在脚本环境中,这种交互式密码输入的方式并不适用,因为脚本是自动化执行的,无法进行人工交互。为了...

    CentOS 7中sudo权限配置

    `NOPASSWD` 表示vic在使用sudo时不需要输入密码。`ALL` 代表了所有的命令,而`!SHUTDOWN` 表示除了SHUTDOWN别名中定义的命令之外。 对于Linux系统管理员来说,了解如何配置和管理sudo权限是十分重要的,因为这关系...

    sudo命令 以系统管理者的身份执行指令

    sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。 sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都...

    sudo-1.8.28p1.tar.gz

    - 用户执行sudo时,系统会检查其是否在sudoers文件中被授权,并根据配置执行身份验证(通常需要输入用户密码,非root密码)。 - 验证成功后,sudo会在一定时间内(可配置)允许用户无须再次输入密码执行其他sudo...

    Linux系统Sudo命令的使用说明

    4. **时间戳机制**:用户在输入密码并执行sudo后,会得到一个有效期为5分钟的“票证”(默认值,可调整)。超过这个时间,用户需再次输入密码,增强了安全性。 Sudo命令本身是一个设置了SUID位的二进制文件,这意味...

    操作系统安全:su及sudo权限配置及控制.pptx

    此外,sudo还支持远程执行,但默认情况下,ssh远程执行sudo命令需要禁用requiretty选项,这可以通过编辑/etc/sudoers文件并注释掉相应行来实现。 在实际操作中,sudo提供了更安全的权限管理方式,因为它可以限制...

    Laravel开发-sudo-su

    而`su`(Switch User)命令则是用来切换到另一个用户的身份,它不需要密码就可以切换到同组的用户,但若要切换到root用户,则通常需要输入密码。 在Laravel项目中集成`sudo-su`包,开发者可以方便地在Laravel ...

Global site tag (gtag.js) - Google Analytics