Day 26 用户管理
第1章 回顾 如何彻底关闭iptables 和 SElinux
1.1 关闭iptables
1. 临时关闭
/etc/init.d/iptables stop 重启后失效
/etc/init.d/iptables status 查看状态
Iptables: firewall is not running.
2. 永久关闭——重启生效
Chkconfig iptables off 关闭
Chkconfig |grep iptables 查看状态
1.2 SElinux
1. 永久关闭SElinux
Disabled selinux 彻底关闭
2. 临时关闭 SElinux
Getenforce 现在selinux是否运行
Setenforce 0 关闭
Setenforce 1 开启
1.3 面试题:如何让一个脚本开机自启动
写入/etc/rc.local (Centos 7 给 /etc/rc.d/rc.local 加上执行权限)
或者加入chkconfig开机自启动
1.4 如何通过chkconfig 管理开机自启动
1. 脚本要存放在/etc/init.d下
[root@CJY ~]# vim /etc/init.d/oldboyd
2. 脚本要有执行权限
chmod +x /etc/init.d/**.sh
3. 要增加chkconfig要求的格式
# chkconfig: 2345 99 98
运行级别 启动顺序 关闭顺序
4. 加入到chkconfig管理与检查
chkconfig --add **.sh
chkconfig |grep **.sh
[root@CJY ~]# chkconfig --add oldboyd
You have new mail in /var/spool/mail/root
[root@CJY ~]# chkconfig |grep oldboyd
oldboyd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
1.5 找出/etc/init.d/下面的文件中 包含chkconfig:的行
[root@CJY ~]# grep --color 'chkconfig:' /etc/init.d/* |column -t
/etc/init.d/abrt-ccpp:# chkconfig: 35 82 16
/etc/init.d/abrtd:# chkconfig: 35 82 16
/etc/init.d/abrt-oops:# chkconfig: 35 82 16
/etc/init.d/acpid:# chkconfig: 345 26 74
/etc/init.d/atd:# chkconfig: 345 95 5
/etc/init.d/auditd:# chkconfig: 2345 11 88
/etc/init.d/blk-availability:# chkconfig: 12345 25 75
/etc/init.d/cpuspeed:# chkconfig: 12345 13 99
/etc/init.d/crond:# chkconfig: 2345 90 60
/etc/init.d/haldaemon:# chkconfig: 345 26 74
/etc/init.d/ip6tables:# chkconfig: 2345 08 92
/etc/init.d/iptables:# chkconfig: 2345 08 92
/etc/init.d/irqbalance:# chkconfig: 2345 13 87
/etc/init.d/lvm2-lvmetad:# chkconfig: 12345 02 99
第2章 用户管理:
2.1 用户和用户组
UID ×××号码
GID 户口本号码
用户分类
root 0
虚拟用户 1-499 命令解释器/sbin/nologin
服务/程序 运行所需要的用户
普通用户 500+
2.2 创建用户useradd
-u |
指定uid |
-s
|
shell 命令解释器 (默认是/bin/bash) /sbin/nologin |
-M |
不创建家目录 (sM) |
-g |
指定用户组名称 |
2.2.1 #添加一个用户lidao999 uid为999 禁止 登录系统不创建家目录
[root@oldboyedu50-lnb ~]# useradd -u 999 -s /sbin/nologin -M lidao999
[root@oldboyedu50-lnb ~]# grep lidao /etc/passwd
lidao999:x:999:999::/home/lidao999:/sbin/nologin
[root@oldboyedu50-lnb ~]# ll /home/lidao999
ls: cannot access /home/lidao999: No such file or directory
#创建一个uid为999的虚拟用户 lidaoxxxx
2.3 userdel 默认不会删除用户老家
-r 删除用户的老家 与邮箱
通过注释 /etc/passwd 用户所在行
2.4 passwd 修改密码
2.4.1 交互式设置
[root@CJY ~]# passwd oldboy
Changing password for user oldboy.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
2.4.2 --stdin 非交互式设置密码
#非交互式设置密码
[root@oldboyedu50-lnb ~]# echo 123456|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
2.5 usermod 修改用户信息
与useradd类似
#附加组 -G
[root@oldboyedu50-lnb ~]# id lidao999
uid=999(lidao999) gid=999(lidao999) groups=999(lidao999)
[root@oldboyedu50-lnb ~]# usermod -G root,oldboy,www lidao999
[root@oldboyedu50-lnb ~]# id lidao999
uid=999(lidao999) gid=999(lidao999) groups=999(lidao999),0(root),500(oldboy),501(www)
#清空附加组
[root@oldboyedu50-lnb ~]# usermod –G ‘’ lidao999
主要组 -g
[root@CJY ~]# usermod -g root lidao999
[root@CJY ~]# id lidao999
uid=999(lidao999) gid=0(root) groups=0(root)
2.6 groupadd 添加用户组
-g gid
2.6.1 添加一个虚拟用户mysql 用户和用户组的uid 666
useradd -u 666 -s /sbin/nologin -M mysql
#groupadd -g 666 mysql
#useradd -u 666 -g mysql -s /sbin/nologin -M mysql
2.7 查询用户信息
id |
显示用户信息 uid gid 和属于用户组 |
w |
显示谁登陆系统 并 在干什么 |
last |
所有用户的每次的登录情况 |
lastlog |
所有用户最近一次的登录情况 |
2.8 有关用户的文件和目录
文件
[root@oldboyedu50-lnb ~]# ll /etc/passwd /etc/group /etc/shadow /etc/gshadow
-rw-r--r-- 1 root root 1180 Aug 13 10:14 /etc/passwd #存放用户信息
-rw-r--r-- 1 root root 614 Aug 13 10:16 /etc/group #用户组信息 每个用户组里面有什么用户?
---------- 1 root root 873 Aug 13 10:49 /etc/shadow #用户密码信息
---------- 1 root root 501 Aug 13 10:16 /etc/gshadow #用户组密码信息
目录/etc/skel 每个新用户的家目录的模板
[root@oldboyedu50-lnb ~]# ll -a /etc/skel/
total 20
drwxr-xr-x. 2 root root 4096 Jul 10 18:21 .
drwxr-xr-x. 78 root root 4096 Aug 13 11:08 ..
-rw-r--r--. 1 root root 18 Mar 23 2017 .bash_logout #用户退出的时候 运行里面的命令
-rw-r--r--. 1 root root 176 Mar 23 2017 .bash_profile #/etc/profile
-rw-r--r--. 1 root root 124 Mar 23 2017 .bashrc #/etc/bashrc
2.9 命令行中出现-bash-4.1$这种故障如何解决
模拟故障:
先把/etc/profile中的
PS1的行注释
[wc@oldboyedu50-lnb ~]$ \rm -f .bash*
重新登录:
[root@oldboyedu50-lnb ~]# su - wc
-bash-4.1$
-bash-4.1$
-bash-4.1$
如何解决:
在有故障的用户下面
cp /etc/skel/.bash* ~
2.10 临时成为root sudo
2.10.1 oldboy用户 查看系统日志
1. sudo 2. cat(root) suid 3. 日志加上 r权限 4. root密码 |
2.10.2 sudo 尚方大宝剑(让普通用户以root运行某个命令 )
2.10.2.1 root 授予权限
oldboy进行测试
sudo -l #查看当前用户有什么大宝剑
[sudo] password for oldboy:
Sorry, user oldboy may not run sudo on oldboyedu50-lnb.
[oldboy@oldboyedu50-lnb ~]$ #你没有配置sudo
visudo ==== crontab -e
/etc/sudoers /var/spool/cron/root
2.10.2.2 给oldboy用户授权
#root用户 visudo 92行下面
#授予oldboy用户 ls,touch,mkdir
oldboy ALL=(ALL) /bin/ls, /bin/touch, /bin/mkdir
2.10.2.3 #oldboy进行测试
sudo ls /root/
2.10.2.4 #授予oldboy /bin/下所有命令
oldboy ALL=(ALL) /bin/*
2.10.2.5 #授予oldboy/bin/下所有命令,禁止使用vi和rm命令
oldboy ALL=(ALL) /bin/*, !/bin/rm, !/bin/su, !/bin/vi
#授予oldboy 系统所有命令并且不需要输入密码
oldboy ALL=(ALL) NOPASSWD:ALL
2.11 sudo 小结:
1.sudo授予权限精确到命令
2.授权所有 排除 不需要输入密码
3.su与su - 区别
用户审计 行为审计(记录用户操作)
跳板机 堡垒机
1.硬件:齐治堡垒机
2.开源软件:jumpserver
3.自己写:shell脚本