Linux实战教学笔记15:用户管理初级(下)
由于主机别名,在工作中使用的不多,这里我们就不讲解了,如果同学们感兴趣,可以查看man sudoers或less /etc/sudoers自行查看
生产环境实例:
实例1:定义用户别名
sa === system administrator
User_Alias ADMINS = chensiqi,chensiqi2,%sa #注意定义的规范 #定义系统管理用户别名ADMINS,包含成员chensiqi,chensiqi2及sa组成员 User_Alias NETADMINS = leo,maya #定义用户别名NETADMINS来管理网络,包含成员leo,maya User_Alias USERADMINS = zuma #定义用户别名USERADMINS来管理用户,包含成员zuma 特别说明:为了方便管理,要尽可能使用有意义的名称作为别名。另外,所有包含成员都必须是系统中存在的用户或存在的组。
检查并创建上述用户及用户组
[root@chensiqi1 ~]# id chensiqi uid=500(chensiqi) gid=802(chensiqi) groups=802(chensiqi) [root@chensiqi1 ~]# grep "^sa:" /etc/group sa:x:801: [root@chensiqi1 ~]# useradd leo echo 123|passwd --stdin leo [root@chensiqi1 ~]# useradd maya echo 123|passwd --stdin maya [root@chensiqi1 ~]# useradd zuma echo 123|passwd --stdin zuma [root@chensiqi1 ~]# useradd chensiqi2 echo 123|passwd --stdin chensiqi2
实例2:定义命令别名
Cmd_Alias USERCMD = /usr/sbin/useradd,/user/sbin/userdel,/user/bin/passwd [A-Za-z]*,/bin/chown,/bin/chmod, ! /usr/bin/passwd root Cmd_Alias DISKCMD = /sbin/fdisk,/sbin/parted Cmd_Alias NETMAGCMD = /sbin/ifconfig,/etc/init.d/network Cmd_Alias CTRLCMD = /usr/sbin/reboot,/usr/sbin/halt 特别说明: 1)所有的命令别名下的成员必须是文件或目录的绝对路径 2)命令别名超过一行时,可以通过“\”号换行。 3)定义时,可以通过通配符,如/usr/bin/passwd [A-Za-z]*
上述用户和命令别名实际上就是整理如下对应关系:
实例3:定义runas别名
Runas_Alias OP = root,chensiqi 特别说明:runas别迷ing的定义不多见,不常用,了解即可3.4 /etc/sudoers配置文件中的授权规则 /etc/sudoers的授权规则就是分配权限的执行规则,前面我们讲到的定义别名主要为了更方便授权引用别名。如果系统中的普通用户不多,在授权时可以不用定义别名,而是针对系统用户直接授权,所以在授权规则中别名并不是必须的,这一点大家要知道下,毕竟别名的技术理解和配置还是有点难。 关于授权规则,通常我们可以man sudoers来查看/etc/sudoers文件的配置信息,配置文件中的例子其实已经演示的很清楚了,这里我仅给大家做一些必要的说明,如果想详细了解授权规则写法的,可执行man sudoers或man /etc/sudoers查询。 3.4.1 sudo授权规则实例
下面我们结合别名授权和用户授权规则举几个综合应用的例子
实例1:对chensiqi的授权规则如下:
chensiqi ALL=/usr/sbin/useradd,/usr/sbin/userdel
在测试之前,为了防止已有的配置干扰,我们把所有配置恢复到默认情况,我们通过比速冻命令在/etc/sudoers里的内容,表示chensiqi可以在所有系统中,切换到root用户下以root身份执行/usr/sbin/useradd和/usr/sbin/userdel命令,切换到chensiqi用户下查看授权的结果如下:
[chensiqi@chensiqi1 ~]$ sudo -l #查看授权结果 [sudo] password for chensiqi: #输入密码 User chensiqi may run the following commands on this host: (root) /usr/sbin/useradd #授权的命令 (root) /usr/sbin/userdel #授权的命令
值得注意的是,本例省略了指定切换到哪个用户下执行/usr/sbin/useradd和/usr/sbin/userdel命令,根据之前所讲,User_Alias默认情况下是切换到root用户下执行:同时,授权时未加NOPASSWD:配置,因此默认情况下,第一次执行是需要密码的。
实例2:对chensiqi的授权规则更改为如下:
chensiqi ALL=(root) /usr/sbin/useradd,/usr/sbin/userdel ###上面一行表示chensiqi可以在所有的主机中,切换到root下执行useradd和userdel命令,和实例1的功能是等价的。
实例3:用户组的配置例子
在前面已经讲解过了,如果用户组出现在/etc/sudoers中,前面要加%sa
%sa ALL=/usr/sbin/*,/sbin/*
如果我们在/etc/sudoers中间加入如上一行,表示sa用户组下的所有成员,在所有主机下,可切换到root执行/usr/sbin和/sbin目录下所有命令,*为正则表达式写法,表示所有。
实例4:禁止某个命令的执行
禁止某个命令的执行,要在命令动作前面加上!号:本例中也使用了通配符的*的用法:
chensiqi ALL=(ALL) /usr/sbin/*,/sbin/*,!/sbin/fdisk
这个规则表示chensiqi用户在所有主机上可以切换到任何身份,可以运行/usr/sbin和/sbin目录下所有命令,但fdisk命令除外。
1)授权规则中的所有ALL字符串必须为大写字母。
2)Cmd_ALias(命令别名):允许执行的命令是有顺序的。命令的顺序是从后向前,即把禁止执行的命令放在允许执行的命令的后边。再强调下,禁止的命令尽量放在后边
3)一行内容超长可以用“”斜线换行。
4)“!”叹号表示非,就是命令取反的意思,即禁止执行的命令
5)根据实际情况,来分类制作命令别名,用什么给什么。
在默认情况下,我们是无法通过ssh远程执行sudo命令的,这是因为,远程执行sudo,那么密码是明文的,这是被禁止的。可是在实际生产场景中我们经常需要这样的需求,怎么解决呢?
localhost:~ chensiqi$ ssh chensiqi@chensiqi cat /etc/redhat-release #用普通账号链接查看远程服务器系统版本 chensiqi@chensiqi's password: CentOS release 6.8 (Final) localhost:~ chensiqi$ ssh root@chensiqi sed -n '92p' /etc/sudoers #查看普通账户授权情况 root@chensiqi's password: chensiqi ALL=(chensiqi2) /bin/mkdir,/bin/ls localhost:~ chensiqi$ ssh chensiqi@chensiqi sudo ls /root #ssh远程执行sudo命令 chensiqi@chensiqi's password: sudo:没有终端存在,且未指定 askpass 程序 为何会有这样的错误呢?我们之所以用ssh来执行sudo其实为的就是可以免交互方式来得到我们想得到的结果。但是普通用户sudo在申请授权的时候,是需要输入密码的,因此,我们想要成功,需要先进行免密码操作。 localhost:~ chensiqi$ ssh chensiqi@chensiqi cat /etc/redhat-release #查看版本 chensiqi@chensiqi's password: CentOS release 6.8 (Final) localhost:~ chensiqi$ ssh root@chensiqi "sed -n '92p' /etc/sudoers" #查看授权资料 root@chensiqi's password: chensiqi ALL=(ALL) NOPASSWD: /bin/mkdir,/bin/ls #进行了免密码配置 localhost:~ chensiqi$ ssh chensiqi@chensiqi "sudo ls /root" #远程执行sudo。成功! chensiqi@chensiqi's password: anaconda-ks.cfg chen2017-02-20.tar.gz chensiqi dsfds gsdgdsfg install.log sdfsdf ww.etiantian.org zzzz
特别提示:
设置了免密码之后,之所以能成功,是因为linux系统版本为Centos6.8,如果是之前的系统版本。那么我们需要做特殊处理。我们可以通过“ssh -t hostname sudo ”的方式来执行,也就是加了个-t参数。通过man ssh查看-t参数的帮助可以得知,这是一个可以强制ssh远程执行本来需要屏幕的程序(免交互),会强制配置终端tty,即使本地没有。
说明:所谓sudo命令日志审计,并不记录普通用户的普通操作。而是记录那些执行sudo命令的用户的操作。
项目实战:简历中的经验说明模版
服务器日志审计项目提出与实施 20xx.0x - 20xx.xx
1,权限方案实施后,权限得到了细化控制,接下来进一步实施对所有用户日志记录方案。
2,通过sudo和syslog(rsyslog)配合实现对所有用户进行日志审计并将记录集中管理(发送到中心日志服务器)
3,实施后让所有运维和开发的所有执行的sudo管理命令都有记录可查,杜绝了内部人员的操作安全隐患。
生产环境企业日志审计解决方案:
所谓日志审计,就是记录所有系统及相关用户行为信息,并且可以自动分析,处理,展示(包括文本或者录像)
方法一:通过环境变量命令及rsyslog服务进行所有用户的所有操作的全部日志审计(信息量太大,不推荐)。
方法二:sudo配合rsyslog服务,进行日志审计(审计信息较少,效果不错)
方法三:在bash解释器程序里嵌入一个监视器,让所有被审计的系统用户使用修改过的增加了监视器的特殊bash程序作为工作环境
方法四:齐治的堡垒机:商业产品
我们今天要学习的是:sudo日志审计:专门对使用sudo命令的系统用户记录其执行的命令相关信息。
方法五:python开发的开源产品
方法六:
方法七:
shell跳板机:
1)安装sudo命令,rsyslog服务
一般情况下系统都是默认安装了的。(Centos5为syslog)
2)配置/etc/sudoers
增加配置“Defaults logfile=/var/log/sudo.log”到/etc/sudoers中,注意:不包含引号。
[root@chensiqi ~]# echo "Defaults logfile=/var/log/sudo.log" /etc/sudoers
一行搞定sudo日志审计
[root@chensiqi1 ~]# tail -1 /etc/sudoers Defaults logfile=/var/log/sudo.log [root@chensiqi1 ~]# visudo -c #检查sudoers文件语法 /etc/sudoers: parsed OK
提示:下面的3),4)可以不执行,直接切换到普通操作,然后查看/var/log/sudo.log有无记录
[root@chensiqi1 ~]# cat /var/log/sudo.log Feb 21 11:30:55 : chensiqi : TTY=pts/0 ; PWD=/home/chensiqi ; USER=root ; COMMAND=/bin/ls /root
3)配置系统日志/etc/rsyslog.conf(这里可以不配)
增加配置local2.debug到/etc/rsyslog.conf中
[root@chensiqi1 ~]# echo "local2.debug /var/log/sudo.log" /etc/rsyslog.conf #这里可以不配 [root@chensiqi1 ~]# tail -1 /etc/rsyslog.conf #查看配置结果 local2.debug /var/log/sudo.log
提示:如果是Centos5系列,那么路径为/etc/syslog.conf
4)重启rsyslog内核日志记录器
[root@chensiqi1 ~]# /etc/init.d/rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] 如果是Centos5系列,启动命令为/etc/init.d/syslog restart
此时,会自动建立一个/var/log/sudo.log文件并且文件权限为600,所有者和组均为root
[root@chensiqi1 ~]# ll /var/log/sudo.log #确保只有root才能查看 -rw-------. 1 root chensiqi 100 Feb 21 11:30 /var/log/sudo.log
5)测试sudo日志审计配置结果
[root@chensiqi1 ~]# whoami [root@chensiqi1 ~]# su - chensiqi [chensiqi@chensiqi1 ~]$ sudo -u chensiqi2 mkdir /home/chensiqi2/ggggg #执行sudo操作 [chensiqi@chensiqi1 ~]$ exit logout [root@chensiqi1 ~]# cat /var/log/sudo.log #查看日志记录 Feb 21 11:30:55 : chensiqi : TTY=pts/0 ; PWD=/home/chensiqi ; USER=root ; COMMAND=/bin/ls /root Feb 21 11:43:21 : chensiqi : TTY=pts/0 ; PWD=/home/chensiqi ; USER=chensiqi2 ; COMMAND=/bin/mkdir /home/chensiqi2/ggggg
知识扩展:日志集中管理(了解)
许多人通过币圈实现了财富自由,你还要在继续观望吗?
是继续观望,还是光速进入,你自己选!
把握币圈及区块链深层次的价值,抓住区块链当下和未来的机遇!
欢迎高手小白一起免费交流学习!
------
延伸阅读:
新手炒币必看、你还在害怕失去机会吗?
做货币投资,我知道的亏损80%都是重仓操作。盈利了,重仓想赢更多,亏损了,重仓想回本,这就是人性弱点。人性弱点其实大家都知道,但是一旦你投入到这个市场里面,利益,恐惧,浮躁一系列的因素会使你忘记自身弱点,亏损了后知后觉,其实人进入投机市场本来就是一种错误,若你还以为能轻松获胜那就大错特错了。所谓专业的投资者和普通的投资者区别就在于知识和态度。专业者会战战兢兢,控制风险,预防踩雷。而普通投资者,操作不严谨,专业知识不达标,这样子利润会和风险一样大,处于一种赌.博状态,至于赌.博最后的结局相信大家也都有所耳闻。所以专业者会持续盈利,而普通投资者的结局只有一种,而这一种里面又分两种,一个是运气好刚好赌对一波行情赚了之后又重仓操作去赌下一波,一个就是直接亏损然后继续亏损。
交易员总是害怕失去机会,才会导致频繁交易、不断地交易,因为害怕某一次的机会错过了,会导致失去大行情。所以,每一次机会来临时,如果不参与,就好像失去几个亿似的,心痛刀割,很痒,不参与就很难受、痛苦。于是,交易员疲于奔命,不断地在交易的泥潭中挣扎,越挣扎陷的越深。所以,能克服害怕失去机会的毛病,是很重要的。那么,如何克服害怕失去机会的毛病?
第一,明白何为你的机会,你的机会是什么?否则的话,你根本不知道自己在等什么机会,满屏的波动都是机会,只要有波动,就有贪婪中的利润,你就会时刻想冲杀进去。你不杀进去,你就会责骂自己失去赚钱的机会,会自责,所以会时刻害怕失去机会。
第二,扎实技术分析,扎实基本功。建立起相对成熟的交易系统,或者研究基本面,对某个商品的供需研究透了,这样你的机会才可能是正确的;否则如果你等的机会是错误的,谈何赚钱,等这样的机会又有何意义?掌握深厚的技术理论,每日进行分析,学以致用,加强对技术理论的学习和深刻理解;再在实战中,应用技术理论进行分析,结合实战,从中选择成功率最高的几个图形机会,这种机会才是我们真正需要等的,这样你就会慢慢形成自己的交易系统,明白自己的机会是什么。
第三,放弃暴富的观念,不要求迅速暴富,而求稳定富裕。一年能赚50%以上足以,不渴求一年翻几倍。不求每日都赚,不求每周都赚,不求每月都赚。一年赚50%-100%就行了,等你资金大了,几千万,一年能30%,就不错了,长期坚持,放弃暴富的心态后,仓位就不会重了,心态也变好了,有技术分析的功底,能够通过技术分析,耐心地筛选严格符合自己的交易机会,这样的话,操盘的单子也就自然少了很多,不担心失去机会了。
第四,不要盯盘,千万不要盯盘。盯盘会让你感觉机会稍纵即逝,时刻想参与,例如:下跌时你刚出来的单子,看到行情又上涨,害怕失去上涨的机会,又立马进去,结果你都不知道这个上涨是反弹,还是上涨趋势,频繁亏损。另外,盯盘的时候,你的心情会和价格一样波动,判断容易失去理智,该持有的单子,稍微有了一点盈利,看到行情下跌了一点害怕,就止盈,或者该止损的单子,看到行情又上涨了一点,抱有解套的希望,又不止损,等等。
如果两个方向你都想去做,左顾右盼、依依不舍,你的交易失误的概率就会很高。如果你只做一个方向,你判断成功概率会高。趋势是多,你只做多;放弃回调,再去做多。人的思维是有一个认知、思考、执行的惯性依赖的,在交易中如此,在现实生活中也是如此。比如:过去足协体内有折返跑测试,很像我们的双向交易,这个测试是最累人的,也是许多优秀的运动员无法通过体能测试的根源,最终足协不得不在争议声中取消了折返跑。
人生需要规划,钱财需要打理;你不理财,财不理你;赚钱靠机会,投资靠智慧,理财靠专业。投资犹如下棋,棋艺高者能看出五步,七步甚至十几步,而棋艺低者只能看出两三步,高者顾大局,谋大势,不以一子一地为重,以最终赢棋为目标,低者则寸土必争,只为争一时之需,结果频频受困。趋势,一定要有长远眼光,投资,一定要有长远规划,而布局技巧是成功的关键。详细交流了解请加笔者!
------------------
推荐阅读: