usermod -s /sbin/nologin 用户名
usermod -L 用户名 //锁定用户账户
passwd -l 用户名 //锁定用户密码
passwd -S 用户名 //查看用户状态
userdel -r 用户名 //删除用户及其宿主目录
passwd -d 用户名 //清空账户密码
chattr +i /etc/passwd /etc/shadow //锁定文件
lsattr /etc/passwd /etc/shadow //查看文件状态
chattr -i /etc/passwd /etc/shadow //解锁文件
在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统
vi /etc/securetty
#tty5
//想要不让在哪个终端登陆就在该终端前加注释#
tty6
login 程序会检查/etc/nologin 文件是否存在,如果存在,则拒绝普通用户登录系统(root 用户不受限制)
touch /etc/nologin
//创建/etc/nologin文件即禁止普通用户登录
rm -rf /etc/nologin
//删除该文件即取消登录限制
chage -M 日期 用户 //设置用户密码有效期
chage -E xxxx-xx-xx //设置过期日期
[xxxx为年][xx为月]-[xx为日]
vim /etc/login.defs //修改密码配置文件适用于新建用户
chage -d 0 用户 //强制在下次登陆时更改密码
原因:不法分子会查看上次输入的记录,可能导致root密码等重要信息揭露
vi /etc/profile //编辑全局变量配置文件
export HISTZIZE=200 //将内容插入最后一行
vim ~/.bashrc
echo " " > ~/.bash_history //将内容插入最后一行
当终端处于闲置一段时间后实现自动注销
vim /etc/profile //编辑全局变量配置文件
export TMOUT=600 //将内容插入最后一行
su命令使得每个用户都具有反复尝试其他用户的登陆密码,若是root用户,则风险更大
vim /etc/pam.d/su
pam_rootok.so模块的主要作用是使uid为0的用户,即 root用户能够直接通过认证而不用输入密码
第一列代表PAM认证模块类型 | 解释 |
---|---|
auth | 对用户身份进行识别,如提示输入密码,判断是否为root。 |
account | 对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。 |
password | 使用用户信息来更新数据,如修改用户密码。 |
session | 定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。 |
第二列代表PAM控制标记 | 解释 |
---|---|
required | 表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。 |
requisite | 与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。 |
sufficient | 如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。 |
optional | 不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session 类型)。 |
include | 表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。 |
第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。
vim /etc/pam.d/su
#auth required pam_wheel.so use_uid
//去除此段的#
gpasswd -a gtt wheel //将用户“gtt7”加入到whell组中
Linux-PAM是linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式
PAM使用/etc/pam.d/下的配置文件,来管理对程序的认证方式。应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在/lib64/security下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的
安全日志文件:/var/log/secure
cat /var/log/secure
PAM 认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so(认证模块)
PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于 /lib64/security/下)进行安全认证
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM 模块也是不同的
如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看/etc/pam.d/
ls /etc/pam.d/ //PAM配置文件
ls /lib64/security/ //认证模块
vim /etc/sudoers //默认为只读,保存方式:wq!
或
visudo
fox foxhome=/sbin/ifconfig //使fox拥有ifconfig权限
fox foxhome=!/sbin/reboot //使fox没有reboot权限
fox foxhome=/sbin/* //使fox拥有所有sbin权限
fox foxhome=/sbin/reboot,poweroff //加逗号自定义
1.1禁止某用户开关机
User_Alias USERS=fox,cat
//用户的别名users包含fox和cat
Host_Alias HOSTS=foxhome,cathome
//主机别名hosts包括:foxhome和cathome
Cmnd_Alias CMNDS=/sbin/reboot,poweroff
//可执行的命令包括关机和重启
USERS HOSTS=CMNDS
//相当于:用户组 主机组 = 命令程序列表
不法分子会借着开关机的期间进入BIOS界面篡改GRUB的内容,最后导致服务器无法正常开启
使用grub2-mkpasswd-pbkdf2生成密钥
grub2-mkpasswd-pbkdf2
创建登录用户前记得先备份
//对重要文件进行备份
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
vim /etc/grub.d/00_header