将非登录用户的Shell设为/sbin/nologin
查看/etc/passwd 文件,可以看到多个程序用户
使用usermod命令修改登录shell
锁定长期不使用的账号
usermod -L mcl 锁定用户方式一
usermod -U mcl 解锁用户方式一
passwd -l mcl 锁定用户方式二
passwd -u mcl 解锁用户方式二
删除无用的账号
userdel -r 用户名
密码安全控制——设置密码规则
一般通过设置密码规则来控制密码安全,主要设置以下两点:
- 设置密码有效期
- 要求用户下次登录时修改密码
对于新建用户——修改/etc/login.defs文件
对于新建用户,可以修改/etc/login.defs文件里的内容来设置密码规则。
查看/etc/login.defs文件:
参数说明:
PASS_MAX_DAYS #密码最大有效期
PASS_MIN_DAYS #两次修改密码的最小间隔时间
PASS_MIN_LEN #密码最小长度,对于root无效
PASS_WARN_AGE #密码过期前多少天开始提醒
对于现有用户——chage命令
命令格式:
chage [选项] 用户名选项:
-m:密码可更改的最小天数。为0时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-W:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:设置”最后一次修改密码的日期“。设置为 0 有特殊意思,表示用户应该在下次登录系统时更改密码。
-i:停滞时期。允许密码过期后多少天内仍能使用,如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。
Linux中的PAM安全认证
su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式
也是当前Linux服务器普遍使用的认证方式
PAM认证原理:
PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so
PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的
如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/
PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用
使用sudo机制提升权限
sudo命令的用途及用法
用途 :以其他用户身份(如root执行授权的命令)
用法:sudo 权限命令
配置sudo授权
visudo或者vi /etc/sudoers(此文件没有写的权限,保存时必须 wq!强制执行操作)
记录格式:用户 主机名=命令程序列表
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
权限生效后,有5分钟的闲置时间,超过5分钟没有操作则需要再输入密码。
操作格式
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
mcl ALL=(root) /sbin/ifconfig sudo -l
用户: 直接授权指定的用户名,或采用“&组名"的形式(授权一个组的所有用户)
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,"进行分隔。ALL则代表系统中的所有命令
执行调用格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)
启用sudo操作日志
需启用Defaults logfile配置
默认日志文件:/var/log/sudo
操作:在/etc/sudoers
末尾添加Defaults logfile="/var/log/sudo"