## 用户管理
#### 开机启动脚本
##### 方法一:通过/etc/rc.loacl里添加脚步或命令
##### 方法二:通过chkconfig管理
#第一步:必须把脚本放在/etc/init.d/下面,注:在第一行必须要写上# chkconfig: 2345(表示在什么运行级别开机启动) 99(表示启动的顺序,最大99) 99(表示关闭的顺序)
[root@web02 ~]# vim /etc/init.d/test
[root@web02 ~]# cat /etc/init.d/test
# chkconfig: 2345 99 99
echo 'hello'
#第二步:给这个脚本加上执行权限
[root@web02 ~]# chmod +x /etc/init.d/test
[root@web02 ~]# ll /etc/init.d/test
-rwxr-xr-x. 1 root root 36 Jan 18 21:41 /etc/init.d/test
#第三步:将脚本添加到chkconfig中进行管理
[root@web02 ~]# chkconfig --add test
#第四步:查看脚本是否在chkconfig中
[root@web02 ~]# chkconfig |grep test
test 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#### 用户分类与用户文件
##### 用户分类
root用户:uid为0
虚拟用户:uid为1-499,不能登陆系统,用户的命令解析器为/sbin/nologin
普通用户:uid为500+
##### 用户相关的配置文件
/etc/passwd:存放用户的信息
/etc/shadow:存放用户的密码信息
/etc/group:存放用户组的信息
/etc/gshadow:存放用户组密码信息
##### 用户相关的目录
/etc/skel:存放新用户的模板(新用户家目录的样子)
/etc/skel/.bash_logout:用户退出会运行里面的命令
/etc/skel/.bash_profile:同等于/etc/profile
/etc/skel/.bashrc: 同等于/etc/bashrc
##### 例子:请问如下登录环境故障的原理及解决办法?-bash-4.1$
原因:出现这个问题是因为家目录下面的.bash*开头的文件全部被删除了
故障重现:先删除.bash*开头的文件,然后退出重新登陆就会发现变成了-bash-4.1$
[alex77@web02 ~]$ ll /home/alex77/.bash*
-rw-r--r--. 1 alex77 alex77 18 Mar 23 2017 /home/alex77/.bash_logout
-rw-r--r--. 1 alex77 alex77 176 Mar 23 2017 /home/alex77/.bash_profile
-rw-r--r--. 1 alex77 alex77 124 Mar 23 2017 /home/alex77/.bashrc
[alex77@web02 ~]$ rm -f /home/alex77/.bash*
[alex77@web02 ~]$ ll /home/alex77/.bash*
ls: cannot access /home/alex77/.bash*: No such file or directory
[alex77@web02 ~]$ logout
[root@web02 ~]# su - alex77
-bash-4.1$
解决方法一:从/etc/skel/下面把.bash*开头的文件复制过来,然后退出重新登陆
-bash-4.1$ cp /etc/skel/.bash* .
-bash-4.1$ logout
[root@web02 ~]# su - alex77
解决方法二:从其它用户家目录复制过来,会遇到权限问题,可以先使用root用户给需要复制的家目录添加r_x权限,复制完后再还原权限
-bash-4.1$ cp /home/alex/.bash* .
cp: cannot stat `/home/alex/.bash*': Permission denied
-bash-4.1$ su - root
Password:
[root@web02 ~]# chmod +rx /home/alex
[root@web02 ~]# ll /home/alex
total 0
[root@web02 ~]# ll -d /home/alex
drwxr-xr-x. 2 alex alex 4096 Jan 18 19:21 /home/alex
[root@web02 ~]# su - alex77
-bash-4.1$ cp /home/alex/.bash* .
cp: cannot open `/home/alex/.bash_history' for reading: Permission denied
-bash-4.1$ logout
[root@web02 ~]# su - alex77
#### 用户相关的命令
##### useradd:添加用户
-u:指定用户的UID号
-g:指定用户的GID号
-s:指定用户使用的shell(默认是/bin/bash,虚拟用户:/sbin/nologin)
-c:指定用户的说明信息
-M:表示用户不创建家目录,一般创建虚拟用户的时候使用
例子1:添加一个uid是888的虚拟用户alex999
[root@web02 ~]# useradd -u 888 alex9999
[root@web02 ~]# id alex9999
uid=888(alex9999) gid=888(alex9999) groups=888(alex9999)
例子2:添加一个用户alex666指定uid为999 禁止用户登录系统 不创建家目录
[root@web02 ~]# useradd -u 999 -s /sbin/nologin -M alex666
[root@web02 ~]# id alex666
uid=999(alex666) gid=999(alex666) groups=999(alex666)
[root@web02 ~]# su - alex666
su: warning: cannot change directory to /home/alex666: No such file or directory
This account is currently not available.
[root@web02 ~]# ls /home/
alex alex77 alex9999 oldboy www
##### usermod:修改用户信息
-s:修改用户使用的shell
-g:修改用户的用户组
-G:添加多个用户组
##### userdel:默认不删除用户的家目录和邮箱
-r:删除用户所有相关的信息(不推荐使用)
在/etc/passwd中注释用户(推荐使用)
##### passwd:设置用户的密码
--stdin:从管道中获取用户的密码(非交互式)
[root@web02 ~]# echo '12345'|passwd --stdin alex
Changing password for user alex.
passwd: all authentication tokens updated successfully.
##### 使用软件KeePass来保存密码
![](9e83b790-98fa-4103-ac38-ddfac40d77d4_files/ae4fd31a-be2d-424b-b279-a13d9f275832.png)
#### 如何让系统更安全1
1.最小化安装系统
2.禁止root用户登陆
3.修改远程端口22
4.给系统常用命令+i和系统配置文件+a
5.给重要的文件添加指纹或命令做一个指纹,或者做个定时任务+md5sum定时检查
#生成一个md5
[root@web02 oldboy]# md5sum oldboy.txt
917b9d05644c82592b6707a7b624b3e1 oldboy.txt
#将生成好的md5定向到指定的md5库中
[root@web02 oldboy]# md5sum oldboy.txt > test.txt
[root@web02 oldboy]# cat test.txt
917b9d05644c82592b6707a7b624b3e1 oldboy.txt
#使用md5sum -c 来对比文件有没有被修改,没有被修改会输出ok
[root@web02 oldboy]# md5sum -c test.txt
oldboy.txt: OK
#文件修改后再次对比,会输出failed
[root@web02 oldboy]# echo '123' >> oldboy.txt
[root@web02 oldboy]# md5sum -c test.txt
oldboy.txt: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
##### 如何让系统更安全2(摘自李导博客)
##### 原因分析
因为linux下的木马通常是通过web的上传目录方式来上传木马到服务器上的,可根据从恶意者访问网站开始-->Linux系统-->HTTP服务-->中间件服务-->程序代码-->DB-->存储,层层设卡防护
##### 从用户访问角度解答
1.开发程序代码对上传文件类型做限制,例如不能上传.php程序(JS及后端代码控制)。
2.对上传的内容(包括文本和文件)检测,检测方式可通过程序、Web服务层(中间件层)、数据库等层面控制。
3.控制上传目录的权限以及非站点目录的权限(Linux文件目录权限+Web服务层控制)。
4.传上木马文件后的访问和执行控制(Web服务层+文件系统存储层)。
5.对重要配置文件、命令和WEB配置等文件做md5指纹及备份。
6.安装杀毒软件clamav等,定期监测查杀木马。
7.配置服务器防火墙及入侵检测服务。
8.监控服务器文件变更、进程变化、端口变化、重要安全日志并及时报警。
##### 从内部管理人员角度:防止被提权
1.***管理服务器或Web化管理服务器。
2.ssh监听内网。
3.采用跳板机、操作审计。
4.sudo集权管理、锁定关键文件。
5.站点目录、上传目录权限属组控制。
6.做系统及站点文件备份指纹监控报警。
动态口令认证。