1账号安全基本措施
系统账号清理
-
将非登录用户的Shell设为/sbin/nologin
禁止非登录用户通过Shell访问系统
usermod -s /sbin/nologin 用户名
-
锁定长期不使用的账号
对长期不活跃的账号进行锁定,避免潜在的安全风险。
usermod -L 用户名 # 锁定用户 passwd -l 用户名 # 锁定密码 passwd -S 用户名 # 查看账号状态
-
删除无用的账号
清理无用的账号,保持系统用户列表的简洁和安全。
userdel [-r] 用户名 # 使用-r选项同时删除用户的主目录
-
锁定账号文件passwd、 shadow
锁定关键系统文件以防止未授权的更改。
chattr +i /etc/passwd /etc/shadow # 锁定文件 lsattr /etc/passwd /etc/shadow # 查看文件属性 chattr -i /etc/passwd /etc/shadow # 解锁文件
密码安全控制
-
设置密码有效期
强制用户定期更新密码,提升密码的安全性。
新建用户: 修改全局密码策略,适用于所有新建用户。
[root@localhost ~]# vi /etc/login.defs # 修改配置文件 PASS_MAX_DAYS 30 # 密码有效期为30天
已有用户: 针对特定用户设置密码有效期。
[root@localhost ~]# chage -M 30 lisi # 设置用户lisi密码有效期为30天 [root@localhost ~]# cat /etc/shadow | grep lisi # 查看用户lisi的密码信息
-
要求用户下次登录时修改密码
强制用户在下次登录时更新密码,提升安全性。
[root@localhost ~]# chage -d 0 zhangsan # 将用户zhangsan的密码修改日期设置为0 [root@localhost ~]# cat /etc/shadow | grep zhangsan # 验证更改
命令历史限制
-
减少记录的命令条数
限制历史命令记录数量,减少敏感信息的暴露。
[root@localhost ~]# vi /etc/profile export HISTSIZE=200 # 设置历史记录条数为200 [root@localhost ~]# source /etc/profile # 使更改生效
-
登录时自动清空历史
在每次登录时自动清空命令历史记录,防止命令泄露。
[root@localhost ~]# vi ~/.bashrc ##在文件中插入:输入空字符覆盖文件实现清空 echo "" > ~/.bash_history
终端自动注销
-
闲置600秒后自动注销
设置终端闲置600秒后自动注销,防止长时间未操作的会话被利用。
[root@localhost ~]# vi /etc/profile
export TMOUT=600 # 设置超时时间为600秒
[root@localhost ~]# source /etc/profile # 使更改生效
拓展:两个profile文件的问题修复过程
-
注销时间设置太短导致无法输入命令
解决办法:在另一台机器上使用scp命令,将本机正常机器profile传输覆盖到故障机器的同名文件。
scp /etc/progile root@192.168.10.11:/etc/profile
-
误删了profile文件,除最基础命令外其余命令都无法使用
解决办法:同样方式,复制使用另一台机器的文件,在本机操作,拷贝正常机器的profile文件到本机再source。
scp /etc/progile root@192.168.10.12:/etc/profile
2使用su命令切换用户
用途
su是Substitute User的缩写,用于切换用户身份
格式
su - 目标用户 # 使用目标用户的登录shell环境
密码验证
- root用户:任意用户切换到root时,不验证密码
- 普通用户:切换到其普通用户时,需要验证目标用户的密码
##带-选项表示将使用目标用户的登录shell环境
[test@localhost ~]# su - root # 切换到root用户
[root@localhost ~]# whoami
root # 验证当前用户为root、
3限制使用su命令的用户
-
将允许使用su命令的用户加入wheel组
仅允许wheel组内的用户使用su命令切换到其他用户。
-
启用pam_wheel认证模块(PAM系统相关的认证权限管理)
通过PAM模块控制su命令的使用权限
[root@localhost ~]# vi /etc/pam.d/su #%PAM-1.0 auth sufficient pam_rootok.so # 如果是root用户,直接通过 auth required pam_wheel.so use_uid # 仅允许wheel组成员使用su
-
查看su操作记录
su命令的操作记录保存在安全日志文件/var/log/secure中。