Linux-sudo配置

简介:

在Linux中,我们使用sudo来命令来减少使用root用户的时间,并且提高安全性,下面就简单讲解下如何配置,主要也是记录,怕自己忘了。




系统环境:

[root@master ~]# cat /etc/redhat-release 

CentOS Linux release 7.3.1611 (Core) 

[root@master ~]# uname  -r

3.10.0-514.26.2.el7.x86_64


配置文件路径:/etc/sudoers


[root@master ~]# vim /etc/sudoers(虽然执行visudo也能进入编辑,但还是推荐使用这种)

 1 ## Sudoers allows particular users to run various commands as

  2 ## the root user, without needing the root password.

  3 ##

  4 ## Examples are provided at the bottom of the file for collections

  5 ## of related commands, which can then be delegated out to particular

  6 ## users or groups.

  7 ## 

  8 ## This file must be edited with the 'visudo' command.

  9 

 10 ## Host Aliases

 11 ## Groups of machines. You may prefer to use hostnames (perhaps using 

 12 ## wildcards for entire domains) or IP addresses instead.

 13 # Host_Alias     FILESERVERS = fs1, fs2

 14 # Host_Alias     MAILSERVERS = smtp, smtp2

 15 

 16 ## User Aliases

 17 ## These aren't often necessary, as you can use regular groups

 18 ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 

 19 ## rather than USERALIAS

 20 # User_Alias ADMINS = jsmith, mikem

 21 

 22 

 23 ## Command Aliases

 24 ## These are groups of related commands...

 25 

 26 ## Networking

 27 # 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

 28 

 29 ## Installation and management of software

 30 # Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

 31 

 32 ## Services

 33 # Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status    , /usr/bin/systemctl enable, /usr/bin/systemctl disable

 34 

 35 ## Updating the locate database

 36 # Cmnd_Alias LOCATE = /usr/bin/updatedb

 37 

 38 ## Storage

 39 # Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

 40 

 41 ## Delegating permissions

 42 # Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp 

 43 

 44 ## Processes

 45 # Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

 46 

 47 ## Drivers

 48 # Cmnd_Alias DRIVERS = /sbin/modprobe

 49 

 50 # Defaults specification

 51 

 52 #

 53 # Refuse to run if unable to disable echo on the tty.

 54 #

 55 Defaults   !visiblepw

 56 

 57 #

 58 # Preserving HOME has security implications since many programs

 59 # use it when searching for configuration files. Note that HOME

 60 # is already set when the the env_reset option is enabled, so

 61 # this option is only effective for configurations where either

 62 # env_reset is disabled or HOME is present in the env_keep list.

 63 #

 64 Defaults    always_set_home

 65 

 66 Defaults    env_reset

 67 Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"

 68 Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"

 69 Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"

 70 Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"

 71 Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

 72 

 73 #

 74 # Adding HOME to env_keep may enable a user to run unrestricted

 75 # commands via sudo.

 76 #

 77 # Defaults   env_keep += "HOME"

 78 

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

 80 

 81 ## Next comes the main part: which users can run what software on 

 82 ## which machines (the sudoers file can be shared between multiple

 83 ## systems).

 84 ## Syntax:

 85 ##

 86 ##      user    MACHINE=COMMANDS

 87 ##

 88 ## The COMMANDS section may have other options added to it.

 89 ##

 90 ## Allow root to run any commands anywhere 

 91 root    ALL=(ALL)       ALL

 92 wxh-docker ALL=(root)   /usr/bin/systemctl

 93 

 94 ## Allows members of the 'sys' group to run networking, software, 

 95 ## service management apps and more.

 96 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

 97 

 98 ## Allows people in group wheel to run all commands

 99 %wheel  ALL=(ALL)       ALL

100 

101 ## Same thing without a password

102 # %wheel        ALL=(ALL)       NOPASSWD: ALL

103 

104 ## Allows members of the users group to mount and unmount the 

105 ## cdrom as root

106 # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

107 

108 ## Allows members of the users group to shutdown this system

109 # %users  localhost=/sbin/shutdown -h now

110 

111 ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)

112 #includedir /etc/sudoers.d

                                                                           

讲解:


其实这个配置文件的核心就是一个命令格式:


用户  来源主机IP/域名=(授权用户)   命令

组    来源主机IP/域名=(授权用户)   命令


以上这些都可以在文件开头定义别名,讲一组用户/IP/命令等整合成一个


 91 root    ALL=(ALL)       ALL

 92 wxh-docker ALL=(root)   /usr/bin/systemctl


以第91和92行为例,第91行是默认存在的,第92行是我添加的

这行的意思是:允许wxh-docker这个用户在任意位置(不限源IP)连接到这台主机上并且可以以root的身份运行systemctl命令






      本文转自1清风揽月1  51CTO博客,原文链接:http://blog.51cto.com/watchmen/1952460,如需转载请自行联系原作者



相关文章
|
23天前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
51 13
|
22天前
|
安全 Linux 数据安全/隐私保护
Linux权限揭秘“Root与Sudo”
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。Root用户几乎可以执行任何命令,修改任何文件,甚至删除系统上的所有内容。因此,Root用户的使用需要非常谨慎,以避免潜在的安全风险。
40 6
|
22天前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
48 5
|
3月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
333 7
|
4月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
6月前
|
网络协议 安全 Linux
如何配置Linux端的ftp?
如何配置Linux端的ftp?
195 64
|
4月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
117 9
|
4月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
129 5
|
5月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
154 2
|
5月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1115 3