在 文件 /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退出
相关推荐
这将允许名为`username`的用户在不输入密码的情况下执行`/path/to/command`。 需要注意的是,修改`sudoers`文件需要格外小心,因为它直接影响系统的安全性。务必确保只对必要的命令赋予无密码执行权限,并且限制...
#1.root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则) #2.欲切换的身份与执行者的身份相同,不需要输入密码 3./etc/sudoers文件设置为允许用户在不输入该用户的密码的情况下使用...
参考了java版的expect4j,expectj的原理,进行了极大的简化,可完成基本的功能: 1,运行java代码,执行交互式命令 2,sudo提权,自动输入密码(echo "password" | sudo -S mkdir /opt/test)
5. 如果`sudo`命令的目标用户与执行用户相同,那么也不需要输入密码。 `visudo`是用于编辑`/etc/sudoers`文件的安全方法。它使用`vi`编辑器,并在保存退出时检查文件的语法,以防止因人为错误导致的配置问题。如果...
然而,这种方法的一个主要问题是需要用户交互,即在执行`sudo`命令时输入密码。这在无头或自动化场景中可能不适用。为了解决这个问题,你可以考虑以下两种方法: 1. 使用`visudo`编辑`/etc/sudoers`文件,为特定的...
然而,通常情况下,执行`sudo`命令时会要求用户输入密码以确认身份,这在自动化任务或需要频繁使用`sudo`的情况下可能会带来不便。本文将详细介绍如何利用管道(pipe)实现`sudo`命令免输入密码的方法。 首先,理解...
- 示例2:如果你想让lin用户无密码重启nagios服务,可以添加规则`lin ALL=NOPASSWD:/etc/init.d/nagios restart`,`NOPASSWD:`表示运行该命令时不需输入密码。 - 示例3:如果希望lin用户执行任何命令都不用输入...
`NOPASSWD`选项表示用户不需要输入密码,而如果省略,则需要用户在执行sudo命令时提供密码。 通过使用sudo,系统管理员可以精确地分配权限,确保每个管理员只能执行他们职责范围内的任务,从而提高安全性。此外,...
sudo命令则允许用户以其他用户(通常为root)的身份执行单个命令,而不需要知道该用户的密码。用户需要输入自己的密码,因为sudo的权限是基于用户配置的。在大多数系统中,sudo执行的命令会有时间限制,比如Ubuntu...
在Linux系统中,`sudo` 是一个非常重要的命令,它允许普通用户以管理员(或root)权限执行特定的命令。这个功能在运维工作中极其常见,因为它可以提高安全性,避免频繁切换到root账户。本笔记将详细讲解如何通过`...
默认情况下,执行`sudo`命令时,系统会要求输入对应用户的密码,以确保安全性。然而,在某些特定场景下,例如自动化脚本或无人值守的任务,避免每次运行`sudo`命令时输入密码可能是必要的。本文将详细介绍如何配置...
用户界面中通常会有权限提示,要求用户输入密码以执行需要管理员权限的任务。 在多用户环境中,`sudo`通常被认为比`su`更安全,因为它允许更精细的权限控制。管理员可以通过配置文件限制每个用户的权限,避免将root...
4. **凭据缓存**:为了提高效率,`sudo`支持凭据缓存,即用户在一段时间内无需重复输入密码即可多次运行命令。默认情况下,`sudoers`策略会将凭据缓存5分钟。 5. **命令执行范围**:`sudo`适用于多种Linux发行版,...
一旦认证成功,用户将在一段时间内(通常5分钟)可以继续运行sudo命令,而无需再次输入密码。 2. **执行单个命令**:`sudo -c "command"` 或 `sudo -s "command"`,运行完指定的命令后,sudo会返回到原始用户。 3....
在日常操作中,当我们需要执行需要管理员权限的任务时,通常会使用`sudo`,随后系统会提示输入用户的密码。然而,在脚本环境中,这种交互式密码输入的方式并不适用,因为脚本是自动化执行的,无法进行人工交互。为了...
`NOPASSWD` 表示vic在使用sudo时不需要输入密码。`ALL` 代表了所有的命令,而`!SHUTDOWN` 表示除了SHUTDOWN别名中定义的命令之外。 对于Linux系统管理员来说,了解如何配置和管理sudo权限是十分重要的,因为这关系...
sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。 sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都...
- 用户执行sudo时,系统会检查其是否在sudoers文件中被授权,并根据配置执行身份验证(通常需要输入用户密码,非root密码)。 - 验证成功后,sudo会在一定时间内(可配置)允许用户无须再次输入密码执行其他sudo...
4. **时间戳机制**:用户在输入密码并执行sudo后,会得到一个有效期为5分钟的“票证”(默认值,可调整)。超过这个时间,用户需再次输入密码,增强了安全性。 Sudo命令本身是一个设置了SUID位的二进制文件,这意味...
此外,sudo还支持远程执行,但默认情况下,ssh远程执行sudo命令需要禁用requiretty选项,这可以通过编辑/etc/sudoers文件并注释掉相应行来实现。 在实际操作中,sudo提供了更安全的权限管理方式,因为它可以限制...