文章目录
系统账号清理
- 将非登录用户的Shell设为/sbin/nologin
- 锁定长期不适用的账户
- 删除无用的账户
- 锁定账号文件passwd、shadow
注意:所谓的无法登陆是指这个用户无法登录系统而已,并不是代表这个用户不可以调用用户资源,一般用于程序用户的设置,保障系统安全。
锁定配置文件
chattr -i 不得任意更改文件或目录
命令:
chattr +i /etc/passwd /etc/shadow#加锁
chattr -i /etc/passwd /etc/shadow#解锁
密码安全控制
设置密码规则
修改/etc/login.defs 文件里的内容来设置密码规则,但此文件只对修改之后的用户有效果,换句话来说就是不能修改已存在的用户的密码规则。
- PASS_MAX_DAYS 99999#密码可使用的最大天数
- PASS_MIN_DAYS 0#两次修改密码最小时间间隔时间
- PASS_MIN_LEN 5#密码最小长度
- PASS_WARN_AGE 7#密码过期前多少天开始提示
对已有用户可以使用chage命令来修改
用法:chage [选项] 登录
选项:
- -d, --lastday 最近日期 将最近一次密码设置时间设为"最近日期" ,即强制用户下次登录时一定修改密码。
- -E, --expiredate 过期日期 将帐户过期时间设为"过期日期"
- -h, --help 显示此帮助信息并推出
- -I(大写i), --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
- -l, --list 显示帐户年龄信息
- -m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为"最小天数"
- -M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为"最大天数"
- -R, --root CHROOT_DIR chroot 到的目录
- -W, --warndays 警告天数 将过期警告天数设为"警告天数"
命令历史
Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。 Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为1000条。通过修改/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。
1.一次性清除命令,但重启过后历史命令还是可以出现。
命令:history -c
永久改变
进入/etc/profile文件下找到图上的变量修改并保存,并source /etc/profile(source通常用.代替)重新执行该文件。
如果需要每次关机自动清空历史操作呢?该如何实现?
在.bash_logout(登出配置文件)的配置文件加入命令
echo " " >~/.bash_history即可清空历史操作命令。
注意:想对所有用户生效需要在/etc目录下,若是对当前目录下用户生效即可当前永固的家目录的隐藏文件。
切换用户
su命令即switch user ,命令可以切换用户身份,并且以指定用户的身份执行命令。
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
说明:root su至其他用户无须密码;非root用户切换时需要密码。
注意:su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。