你好
我是你们的雨嘉叔

04-Linux用户管理之su&sudo

一、su命令
1、命令用法
su [选项参数] [用户]
2、常用参数介绍
①-, -l, –login:使一个shell成为登录的shell,如执行su -zhangyujia时,表示该用户想改变身份为zhangyujia,并且使用zhangyujia用户的环境变量配置,如:/home/zhangyujia/.bash_profile等。
②-c, –command=COMMAND:切换到一个shell下,执行一个命令,然后退出所切换的用户环境。
应用场景:以指定用户身份开机自动启动服务
tail -5 /etc/rc.local
su -zhangyujia -c ‘/bin/sh /home/zhangyujia/bin/deploy.sh’ #分用户方案启动服务命令。
3、缺点:
当我的主机是多人共管的环境时,如果大家都要使用 su 来切换成为 root 的身份,那么不就每个人都得要知道 root 的口令,这样口令太多人知道可能会流出去, 很不妥当!


二、sudo命令
1、sudo命令执行的大概流程

2、sudo提权配置说明

提示:如果是针对用户组,则对应的授权命令如下:
{f7f18c9fd6018b57a8e5310208018ee39180fe76b298cb0846ec99113e86d05f}用户组 机器=(授权使用哪个角色的权限) /usr/sbin/useradd
3、用法:sudo[参数选项] 命令
4、常用参数选项
①-l :列出用户在主机上可用的和被禁止的命令,当配置好sudo授权规则后,可用这个参数来查看授权情况。
②-v:验证用户的时间戳,当用户运行sudo,输入用户的密码后,在短时间内可以不输入口令直接运行sudo操作,用-v可以跟踪最新的时间戳。
③-u:指定以某个用户身份执行特定的命令操作。
④-k:同-K,删除时间戳,下一个sudo命令要求提供密码。前提是该用户授权中不能有NOPASSWD:参数,时间戳默认五分钟也会失效。


三、sudo配置文件/etc/sudoers
1、别名
①主机别名(Host_Alias)
②用户别名(Cmnd_Alias)
③用户身份别名(User_Alias)
④命令别名(Runas_Alias)
2、一般使用情况
多个系统用户,需求分类,分层次管理用户的时候。
3、配置通式
1) 配置Host_Alias:就是主机的列表
Host_Alias HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允许执行的命令的列表
Cmnd_Alias COMMAND_FLAG = command1, command2, command3
3) 配置User_Alias:就是具有sudo权限的用户的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
4、一些简单的实例

1)定义用户别名(一定要保证这些用户和组都存在,不存在需要创建)
User_Alias ADMINS= zhangyujia,zhangyj,{f7f18c9fd6018b57a8e5310208018ee39180fe76b298cb0846ec99113e86d05f}sa
#定义系统管理员用户别名ADMINS,包含成员zhangyujia,zhangyj及sa组的成员
User_Alias NETADMINS= zhangsan,lisi
#定义用户别名NETADMINS来管理网络,包含成员zhangsan,lisi
2)定义命令别名
Cmnd_Alias USERCMD=/usr/sbin/useradd,/usr/sbin/userdel,\/usr/bin/passwd[A-Za-Z*],/bin/chown,/bin/chmod
Cmnd_Alias DISKMAG=/sbin/fdisk,/sbin/parted
Cmnd_Alias NETMAG=/sbin/ifconfig,/etc/init.d/network
Cmnd_Alias CTRLCMD = /usr/sbin/reboot,/usr/sbin/halt
Cmnd_Alias DEVCMD=  /bin/grep,/usr/bin/tail,/bin/cat
3)定义身份别名
Runas_Alias OP1 =root,zhangyujia
Runas_Alias OP2=root,zhangyj

5、授权规则注意事项总结
①授权规则中的所有ALL字符串必须为大写字母。
②/为换行,!为取反,支持正则表达式。
③允许执行的命令时由顺序的,有可能是从后向前,即把禁止执行的命令放在允许命令的后面。如:/usr/sbin/*,!/usr/sbin/visudo,!/sbin/fdisk,前面的为允许,后边的为禁止。


四、配置sudo命令用户行为日志审计
1、介绍
所谓sudo命令日志审计并不记录普通用户的普通操作,而是记录那些执行sudo命令的用户操作。有些企业会记录所有系统及相关用户行为的信息,并且可以自动分析、处理、展示(包括文本和录像)。
2、生成环境企业日志审计解决方案
①sudo配合rsyslog服务进行日志审计
②JumpServer
http://www.jumpserver.org/
③CrazyEye
http://blog.51cto.com/3060674/1700814
3、配置企业日志审计
①安装sudo命令和rsyslog服务
[root@centos ~]# rpm -aq sudo rsyslog
sudo-1.8.6p3-29.el6_9.x86_64
rsyslog-5.8.10-10.el6_6.x86_64
②追加此条信息
echo “Defaults logfile=/var/log/sudo.log” >>/etc/sudoers
4、验证
你可以切换到其他用户,用sudo做个操作,在cat /var/log/sudo.log查看日志,若发现有记录则证明配置成功。


欢迎关注
新浪微博:https://weibo.com/yougazhang0506
微信公众平台:张雨嘉

我的网站:https://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195
GitHub:https://github.com/zhangyujia0506/

赞(0)
未经允许不得转载:嘉叔的博客 » 04-Linux用户管理之su&sudo
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址