一. 账号安全控制
1.1: 账号安全基本措施
1.1.1: 系统账号清理
●将非登录用户的Shell设为/sbin/nologin
[root@lpf ~]# grep "/sbin/nologin$" /etc/passwd #查看非登录用户'
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
...省略部分内容
[root@lpf ~]# grep "bash$" /etc/passwd #查看当前可以登录的用户'
[root@lpf ~]# vi /etc/passwd
●锁定长期不使用的账号
[root@lpf ~]# useradd tom
[root@lpf ~]# passwd tom
passwd:所有的身份验证令牌已经成功更新。
[root@lpf ~]# usermod -L tom
[root@lpf ~]# passwd -S tom
tom LK 2020-06-22 0 99999 7 -1 (密码已被锁定。)
[root@lpf ~]# usermod -U tom
[root@lpf ~]# passwd -S tom
tom PS 2020-06-22 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@lpf ~]# usermod -L tom
[root@lpf ~]# vi /etc/shadow
tom:!$6$ewqXSVmV$nWbW74WqfC110ty8nz48c7SZw.rXUqWfgZmLJitEILuquAv9ESfqu1bR6MJYr03eHClD5qyUfhNmeMjXpB5BG/:18435:0:30:7::: #密码占位符是!,不能登录
把!去掉可以解除登录
[root@lpf ~]# passwd -S tom
tom PS 2020-06-22 0 30 7 -1 (密码已设置,使用 SHA512 算法。) #显示已经解除锁定
●删除无用的账号
在非登录用户中,还有一部分是很少用到的,如news,uucp,games,gopher等,这些用户可视为冗余账号,可以直接删除
此外,还有一些随着应用程序安装的用户账号,若程序卸载以后未能自动删除,需要人为手动删除
[root@lpf ~]# userdel -r tom #删除用户及家目录
●锁定账号文件passwd、shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow #锁定文件禁止修改
[root@localhost ~]# Isattr /etc/passwd /etc/shadow #锁定文件并查看状态
[root@lpf ~]# chattr +i /etc/passwd /etc/shadow
[root@lpf ~]# lsattr /etc/passwd /etc/shadow
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@lpf ~]# chattr -i /etc/passwd /etc/shadow #文件解锁
[root@lpf ~]# lsattr /etc/passwd /etc/shadow
--------------- /etc/passwd
--------------- /etc/shadow
1.1.2 :密码安全控制
●设置密码有效期
●要求用户下次登录时修改密码
适用于新建用户
[root@lpf ~]# vi /etc/login.defs
PASS_ MAX DAYS
30
适用于已有用户
[root@lpf ~]# chage -M 30 lisi
[root@lpf ~]# chage -d 0 zhangsan #强制在下次登录时更改密码
[root@lpf ~]# vi /letc/profile
HISTSIZE=200
[root@lpf ~]# vi ~/.bash_ logout #账户退出后自动清除历史命令
history -C
clear
1.1.3:命令历史,自动注销
命令历史限制
减少记录的命令条数:bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中 的所有用户
[root@lpf ~]# vi ~/.bash_ profile
............
export TMOUT=600 #设置600秒后自动注销账户
[root@lpf ~]# vi /etc/profile #对于未创建的用户,使用此命令修改配置文件
...省略部分内容
将其中的HISTSIZE=1000,修改为HISTSIZE=200
[root@lpf ~]# export HISTSIZE=200 #该命令适用于当前用户,及时成效
'每当编辑完/etc/profile文件后,都需要使用命令source /etc/profile或者换重启使之生效'
1.2 用户切换与提权
大多数Linux服务器并不建议用户直接以root用户进行登录。
一方面可以大大减少因误操作而导致的破坏
另一方面也降低了特权密码在不安全的网络中被泄露的风险
su ,sudo 两种命令
su命令主要用来切换用户
sudo命令用来提升执行权限
1.2.1: su 命令 -切换用户
- 使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限
切换时需要对目标用户的密码进行验证(从root用户切换为其他用户不需要)
su命令基本格式(Substitute User,切换用户)
su - 目标用户
[root@localhost ~]# su - lisi #从root切换到其他用户不需要输入密码'
[lisi@localhost ~]$ su - root #从其他用户切换到root用户需要输入密码'
上述操作中,“-”等同于“--login”“-l”,表示切换后进入目标用户的登录shell环境。若缺少此选项则仅切换身份,不切换用户环境
[tom@lpf opt]$ su root
密码:
[root@lpf opt]# exit #切换到root身份,但保留当前的shell环境
exit
[tom@lpf opt]$ su - root #切换到新的账户的shell环境
密码:
上一次登录:一 6月 22 18:47:39 CST 2020pts/0 上
[root@lpf ~]#
- 限制使用su命令的用户
将允许使用su命令的用户加入wheel组
[root@lpf ~]# gpasswd -a radmin wheel #把用户加到wheel组
正在将用户“radmin”加入到“wheel”组中
[root@lpf ~]# grep wheel /etc/group
wheel:x:10:radmin
[root@lpf ~]# vi /etc/pam.d/su #启用pam-WHEEL认证模块
#%PAM-1.0
auth sufficient pam_rootok.so
Uncomment the following line to implicitly trust users in the "wheel" group.
auth