sudo指令和/etc/sudoers文件说明

sudo 命令

-l 显示当前用户的sudo权限
-l username 显示username的sudo权限
-u username 以username的权限执行
-k 强迫用户下一次执行sudo时问密码(不论有无超过n分钟)
-b 后台执行
-p 修改提示符,%u,%h
-H 将HOME环境变量设为新身份的HOME环境变量
-s 执行指定的shell
-v 延长密码有效期限5分钟

## Sudoers 允许特定用户在不需要root密码的情况下,运行各种需要root权限的指令
## 相关命令的集合的文件底部提供了示例,然后可以将它们委托给特定的用户或组。
## 该文件必须使用visudo指令编辑

格式:

root ALL=(ALL) ALL
User Aliases Host Aliases = (Runas Aliases) Command Aliases
谁 通过 哪些主机 可以通过 哪个身份 运行 哪些命令

User Aliases和Runas Aliases可取值:
username
#uid
%gropname
%#gid
User_Alias/Runas_Alias

Host Aliases可取值:
hostname
ip
172.16.8.6/16
netgroup
Host_Alias

Command Aliases可取值:
commandname
directory
sudoedit
Cmnd_Alias

## Runas Aliases
# 以什么样的身份运行后面的指令
Runas_Alias USER1 = root

## Host Aliases
## 主机组,您可能更愿意使用主机名(也可使用通配符匹配整个域)或IP地址。
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2

## User Aliases
## 用户,这些通常不是必需的,因为您可以在此文件中使用常规组(即来自文件,LDAP,NIS等) - 只需使用%groupname,而不是USERALIAS
# User_Alias ADMINS = jsmith, mikem

## Command Aliases
## 相关命令的集合

## 网络相关的指令
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

## 软件安装和管理使用的指令
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## 服务相关的指令
# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

## 升级locate数据库的指令
# Cmnd_Alias LOCATE = /usr/bin/updatedb

## 存储相关的指令
# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

## 委派权限相关的指令
# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp

## 进程相关的指令
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

## 驱动模块的相关的指令
# Cmnd_Alias DRIVERS = /sbin/modprobe

##开发常用指令
Cmnd_Alias DEVELOP = /usr/bin/cd, /usr/bin/pwd, /usr/bin/mkdir, /usr/bin/rmdir, /usr/bin/basename, /usr/bin/dirname, /usr/bin/vi, /usr/bin/diff, /usr/bin/find, /usr/bin/cat, /usr/bin/ta
c, /usr/bin/rev, /usr/bin/head, /usr/bin/tail, /usr/bin/tailf, /usr/bin/echo, /usr/bin/wc, /usr/bin/chown, /usr/bin/chmod, /usr/bin/chgrp, /usr/bin/gzip, /usr/bin/zcat, /usr/bin/gunzip,/
usr/bin/tar, /usr/sbin/ifconfig, /usr/bin/ping, /usr/bin/telnet, /usr/bin/netstat, /usr/bin/wget, /usr/bin/top, /usr/bin/cal, /usr/bin/date, /usr/bin/who, /usr/bin/ps, /usr/bin/clear, /u
sr/bin/df, /usr/bin/du, /usr/bin/free, /usr/bin/crontab, /usr/bin/yum,/usr/bin/make,/usr/bin/rm,/usr/sbin/ldconfig

# 默认规范
#
# 如果无法禁用tty上的回显(echo),拒绝运行,即输入密码时禁止显示
Defaults !visiblepw

#
#由于许多程序在搜索配置文件时使用它,因此保留HOME会带来安全隐患。请注意,当启用env_reset选项时,就已经设置了HOME,因此此选项仅适用于env_keep列表中,禁用了env_reset或HOME存在的配置。
Defaults always_set_home

#
Defaults env_reset,passwd_timeout=2.5,timestampe_timeout=4
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

#
# 将HOME添加到env_keep可以使用户通过sudo运行不受限制的命令。
# Defaults env_keep += "HOME"

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## 接下来是重要部分:哪些用户可以在哪些机器上运行哪些软件(sudoers文件可以在多个系统之间共享)。
## 语法:
## user MACHINE=COMMANDS
##
## COMMANDS部分可能会添加其他选项
##
## 允许root在任何地方运行任何命令
root ALL=(ALL) ALL

## 允许‘sys‘用户组的所有用户运行"NETWORKING","SOFTWARE","SERVICES","STORAGE","DELEGATING","PROCESSES","LOCATE","DRIVERS"命令组的指令
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## 允许wheel组中的所有成员运行系统上的所有指令
# %wheel ALL=(ALL) ALL

## 允许wheel组中的所有成员运行系统上的所有指令,不需要密码
# %wheel ALL=(ALL) NOPASSWD: ALL

## 允许users用户组中的所有成员以root用户身份mount和umount cdrom
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## 允许users用户组中的所有成员关闭系统
# %users localhost=/sbin/shutdown -h now

## 读取/etc/sudoers.d目录下的所有配置文件 (这里的 # 号并不是表示注释,是固定写法)
#includedir /etc/sudoers.d

## 为sudo添加日志审计功能,这样的话,只要使用使用sudo执行指令的用户,执行指令的详细信息都会记录在指定的日志文件中
Defaults logfile=/var/log/sudo.log

原文地址:https://www.cnblogs.com/liliyang/p/10527535.html

时间: 2024-11-13 09:50:37

sudo指令和/etc/sudoers文件说明的相关文章

linux中sudo的用法和sudoers配置详解

摘自:http://zxf261.blog.51cto.com/701797/748756 sudo 是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的.它的特性主要有这样几点:1.sudo能够限制用户只在某台主机上运行某些命令.2.sudo提供了丰富的日志,详细地记录了每个用户干了

sudoers文件解析

分类: LINUX 今天在用户组中新加了一个普 通用户,开始这个用户没有sudo权限,于是通过sudo visudo修改了sudo的配置文件,赋予了普通用户的root权限.后来想着能不能将/etc/sudoers文件的访问权限改为777,然后直接在 编辑这个文件.于是想也没想就这么干了.结果改完之后发现自己给自己挖了一个坑,把自己挡在了sudo的门外.      /etc/sudoers是sudo的配置文件,它的属性必需为440.当我用sudo chmod 777 /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

Ubuntu无法sudo提权,报当前用户不在sudoers文件中错误

Ubuntu安装后默认root不能登陆系统,密码也是随机生成,其他用户使用root权限,可以使用sudo提权,前提是该用户在/etc/sudoers配置列表中. 但是有时用户名从/etc/sudoers被意外删除了,sudo不能用了,root又不知道root密码(之前没有改过或者忘记了),如果想修改/etc/sudoers也不可能了,进入了一个死循环. 但可以如下面的方法解决: 1.重启按shift键,进入Ubuntu高级模式,选择一个recovery mode进入,出现一个9个选项的菜单,如果

Linux sudo命令——sudoers文件的配置

Linux sudo命令与其配置文件/etc/sudoers 对linux有一定了解的人多少也会知道点关于sudo命令.sudo命令核心思想是权限的赋予 ,即某个命令的所属用户不是你自己,而你却有权限执行它.但是我们需要注意的是,虽然你有权限执行这个命令,但是在执行的时候却仍是以这个命令本身所属用户来完成的[注释1].(su命令类似sudo命令,但是两者的差别在于前者su是一个粗粒度权限赋予, 对su最好的理解我觉得是change user running command permanent.即

Linux使用sudo提权时,出现xx 不在 sudoers 文件中。此事将被报告。

在使用 sudo 临时提权时,出现:不在 sudoers 文件中.此事将被报告. 可以使用visudo命令来配置/etc/sudoers文件,将目标用户赋予使用sudo命令的能力. 在 /etc/sudoers 文件中,有一处配置专门是配置哪些用户可以使用sudo命令的: 在这下边接着写: myusername ALL=(ALL:ALL) ALL 完后保存退出,此时myusername这个用户就可以使用sudo了.

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

CentOS 6.9使用sudo时出现:“...不在 sudoers 文件中,此事将被报告”的问题解决

在终端切换root账号登录 su 修改/etc/sudoers文件 visudo 找到:root ALL=(ALL) ALL,修改成自己的账号: 保存即可,按Exc,输入”:wq!“,回车.

/etc/sudoers 文件

sudo的权限控制可以在/etc/sudoers文件中查看到 如果想要控制某个用户(或某个组用户)只能执行root权限中的一部分命令, 或者允许某些用户使用sudo时不需要输入密码 格式一般都是 root ALL=(ALL) ALL 授权用户/组 主机 =[(切换到哪些用户或组)] [是否需要输入密码验证] 命令1,命令2,... 字段1 字段2 =[(字段3)] [字段4] 字段5 注意:凡是[ ]中的内容, 都能省略; 命令和命令之间用,号分隔; 字段1: 不以%号开头的表示"将要授权的用户