/etc/sudoers 文件

sudo的权限控制可以在/etc/sudoers文件中查看到

如果想要控制某个用户(或某个组用户)只能执行root权限中的一部分命令, 或者允许某些用户使用sudo时不需要输入密码

格式一般都是 root ALL=(ALL) ALL

授权用户/组 主机  =[(切换到哪些用户或组)] [是否需要输入密码验证] 命令1,命令2,...
字段1      字段2  =[(字段3)] [字段4] 字段5

注意:凡是[ ]中的内容, 都能省略; 命令和命令之间用,号分隔;

字段1:
不以%号开头的表示"将要授权的用户" root
以%号开头的表示"将要授权的组" %wheel

字段2:表示允许登录的主机
ALL表示所有; 如果该字段不为ALL,表示授权用户只能在某些机器上登录本服务器来执行sudo命令
eg:jack mycomputer=/usr/sbin/reboot,/usr/sbin/shutdown
表示: 普通用户jack在主机(或主机组)mycomputer上, 可以通过sudo执行reboot和shutdown两个命令

字段3:
如果省略, 相当于(root:root),表示可以通过sudo提权到root; 如果为(ALL)或者(ALL:ALL), 表示能够提权到(任意用户:任意用户组)。
注意:如果没省略,必须使用( )双括号包含起来

字段4:
可能取值是NOPASSWD:。请注意NOPASSWD后面带有冒号:。表示执行sudo时可以不需要输入密码
eg:lucy ALL=(ALL) NOPASSWD: /bin/useradd
表示: 普通用户lucy可以在任何主机上, 通过sudo执行/bin/useradd命令, 并且不需要输入密码

字段5:授权给用户的操作
逗号分开一系列命令或者ALL表示允许所有操作
注意:命令必须使用绝对路径
命令的绝对路径可通过which指令查看到
[[email protected]_0_10_centos ~]# which chmod
/bin/chmod

  

高级详解

如果写成这样:
papi ALL=(root) NOPASSWD: /bin/chown,/usr/sbin/useradd
表示: 用户papi能在所有可能出现的主机上, 提权到root下执行/bin/chown, 不必输入密码; 但运行/usr/sbin/useradd 命令时需要密码.

注意:因为NOPASSWD:只影响了其后的第一个命令: 命令1.
在具有sudo操作的用户下, 执行sudo -l可以查看到该用户被允许和被禁止运行的命令

通配符和取消命令
eg:papi ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk

命令前面加上!号表示取消该命令
表示意思:用户papi在所有可能出现的主机上, 能够运行目录/usr/sbin和/sbin下所有的程序, 但fdisk除外.

  

编辑文件方式:

强烈建议通过visudo命令来修改该文件,通过visudo修改,如果配置出错,会有提示

系统文档推荐的做法是,修改/etc/sudoers.d 目录下的文件

通过此方法修改sudoers ,需要在/etc/sudoers文件的最后行,加上

#includedir /etc/sudoers.d

注意;这里的指令#includedir是一个整体, 前面的#号不能丢,并非注释,也不能在#号后有空格。

任何在/etc/sudoers.d/目录下,不以~号结尾的文件和不包含.号的文件,都会被解析成/etc/sudoers的内容。

小技巧:

输入密码的时候有反馈

一般sudo后输入密码,都是不会显示任何东西的

vim /etc/sudoers

修改 Defaults env_reset -> Defaults env_reset,pwfeedback即可

原文地址:https://www.cnblogs.com/betterquan/p/12189796.html

时间: 2024-10-13 19:33:02

/etc/sudoers 文件的相关文章

sudoers文件设置sudo命令无密码(root密码)登录

参考博客:http://xvshell.iteye.com/blog/1838093 1. 当用户执行sudo时,Linux系统会去寻找/etc/sudoers文件,并且这是主动的,判断用户是否有执行sudo命令的权限2. 如果用户有执行sudo的权限,让用户输入自己的密码来确认,这里比使用root的密码强多了,赞一下3. 如果密码输入正确,开始执行sudo后面跟的shell命令4. 如果要切换的身份相同, 和su命令一样,也不用输入密码 hadoop ALL=(root)NOPASSWD:AL

解决:"不再sudoers文件中,此事将不做被报告”的问题

使用sudo出现问题:不再sudoers文件中,此事将不做被报告 系统:win8.1 +cents 7 问题:在虚拟机中,默认不是root账号,在使用sudo命令时候收到下面警告: sudo命令含义:使用sudo命令的账号,拥有root账号的权限来执行某些命令或者程序,但不是所有的帐号都可以使用sudo命令,我们要做的就是切换到root账号,用root身份来修改和管理文件,這个文件是 /etc/sudoers. 执行命令: 找到到如下行,用vim编辑此文档添加自己的账号,你本linux的用户名,

用户名不在sudoers文件中此事将被报告的解决方法

以下是root用户下操作 1. cd /etc 来到etc目录下,sudoers文件在该目录下 2. ls -l | grep "sudo" 查看发现sudoers文件的权限是-r--r-----,连root都是只读权限 3. 给sudoers文件添加写的权限 chmod u+w sudoers 4. 将用户名比如test添加到sudoers文件 vi sudoers-->按下i进入编辑状态 找到 root ALL=(ALL)     ALL 下一行添加 test ALL=(AL

CentOS中用户不在 sudoers 文件中。此事将被报告。

首先切换为root用户 su root; 然后更改etc/sudoers文件的只读为可读可写可执行. sudo chmod 777 /etc/sudoers 输入visudo命令即可编辑文件,找到root    ALL=(ALL)    ALL的字段 追加username    ALL=(ALL)     ALL,其中username为你当前需要获得root权限的用户名 5分钟之后密码过期,下次需要重新输入,如果不想如此麻烦,可以用以下方法 username    ALL=(ALL)     N

用户名 不在 sudoers文件中,此事将被报告。

继续昨天的故事 话说昨天新建了一个帐号linc,今天在执行sudo时回显一个很吓人的信息: [plain] view plaincopy [sudo] password for linc: linc 不在 sudoers 文件中.此事将被报告. 这是要去哪儿报告呢?本人最讨厌别人打小报告了,哈哈. 为了解释这个问题,先来说说sudo. sudo命令可以让你以root身份执行命令,来完成一些我们这个帐号完成不了的任务. 其实并非所有用户都能够执行sudo,因为有权限的用户都在/etc/sudoer

ubuntu密码忘了、sudoers文件坏了等解决办法

1.开机狂按shift键,进入grub页面,用上下键移到第二行的恢复模式,按e(注意不是回车) 即Ubuntu,With Linux 3.2.0-23-generic(recovery mode) 2.把ro recovery nomodeset 改成rw single init=/bin/bash 然后按ctrl+x 或者F10 就可以进入 单用户模式 然后就是root权限的shell了,修复之前愚蠢的错误吧,包括重设密码什么的都可以. ubuntu密码忘了.sudoers文件坏了等解决办法,

解决用户“不在 sudoers 文件中”的问题

在centOS系统中,我添加了一个用户,但是在我执行su时,终端告诉我以上的错误,下面是我的解决过程: 首先切换到root用户: 给 etc/hosts读写的权限: 使用vi功能打开sudoers文件,在root ALL=(ALL) ALL 后面加入本用户的信息: hadoop ALL=(ALL)  ALL 重新给该文件设置权限440,退出root,使用sudo功能: 好了.只是个简单的小问题,写出来也是给自己看为主,要是能对像我一样的初学者有帮助那就更好了啊,嘿嘿. 解决用户"不在 sudoe

用户不在sudoers文件中的解决方法 .

在使用Linux系统过程中,通常情况下,我们都会使用普通用户进行日常操作,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开.普通用户执行到系统程序时,需要临时提升权限,sudo就是我们常用的命令,仅需要输入当前用户密码,便可以完成权限的临时提升.在使用sudo命令的过程中,我们经常会遇到当前用户不在sudoers文件中的提示信息,如果解决该问题呢?通过下面几个步骤,可以很简单的解决此问题. 1.切换到root用户权限 Last login: Tue Sep 24

root修改sudoers文件

环境:CentOS7 直接使用root修改sudoers文件,提示: 'readonly' option is set (add ! to override) 解决办法: 在最后保存时,使用   wq!   然后回车

CentOS使用sudo提示用户不在sudoers文件中的解决方法

切换到root用户 [[email protected] ~]$ su root 密码: [[email protected] ~]# 查看/etc/sudoers文件权限,如果只读权限,修改为可写权限 [[email protected] ~]# ll /etc/sudoers -r--r-----. 1  root root 4030 12月  10 09:55 /etc/sudoers [[email protected] ~]#  chmod 777 /etc/sudoers [[ema