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

Posted 苦咖啡~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于sudo指令和/etc/sudoers文件说明的主要内容,如果未能解决你的问题,请参考以下文章

因修改/etc/sudoers权限导致sudo和su不能使用的解决方法

Linux下sudo -s无法执行的解决方法

su与su -,sudo 的区别

linux sudoers 中没有的用户为啥可以使用sudo权限

linux命令sudo,su -和su的区别

linux命令sudo,su -和su的区别