注释掉系统不需要的用户和用户组
//不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。
Shell[root@localhost ~]# cp /etc/passwd /var/.bak/etc/ //欲修改,先备份 [root@localhost ~]# vim /etc/passwd //编辑帐号配置文件 //可以被注释掉的用户:adm,lp,sync,shutdown,halt,operator,games,ftp … … [root@localhost ~]# cp /etc/group /var/.bak/etc/[root@localhost ~]# vim /etc/group //备份并编辑组帐号配置文件//可以被注释掉的组帐号:adm, lp, floppy, games, ftp … …
123456 | [root@localhost ~]# cp /etc/passwd /var/.bak/etc/ //欲修改,先备份 [root@localhost ~]# vim /etc/passwd //编辑帐号配置文件 //可以被注释掉的用户:adm,lp,sync,shutdown,halt,operator,games,ftp … … [root@localhost ~]# cp /etc/group /var/.bak/etc/[root@localhost ~]# vim /etc/group //备份并编辑组帐号配置文件//可以被注释掉的组帐号:adm, lp, floppy, games, ftp … … |
最小的权限+最少的服务=最大的安全
将非登录用户的Shell设为/sbin/nologin
Shell[root@localhost ~]# usermod -s /sbin/nologin user00[root@localhost ~]# tail -2 /etc/passwd //查看一下 user00:x:1000:1000:user00:/home/user00:/sbin/nologin likui:x:1001:1001::/home/likui:/bin/bash
123 | [root@localhost ~]# usermod -s /sbin/nologin user00[root@localhost ~]# tail -2 /etc/passwd //查看一下 user00:x:1000:1000:user00:/home/user00:/sbin/nologin likui:x:1001:1001::/home/likui:/bin/bash |
锁定一段时间内不使用的帐号
Shell[root@localhost ~]# usermod -L user00[root@localhost ~]# tail -3 /etc/shadowtcpdump:!!:16673::::::user00:!$6$9kOvPaa/SJuqojOm$X95/U0BzzcQjmYsXemYrrp725zW.PPZ.NIsV7 #密码前添加了一个!表示锁定TiuL4qLbTvPmrKqcrkWEs6aNNVknoeYD5vNSXs1aSpvgSGiv/:16673:0:99999:7:::likui:$6$p1AeYs41$xLsJpo1ZJuRSxmbtzlezRw6U/WCW95oE1v.HTQmDGzGflE IbNTXhY5QyTQI2nRdc9oH/O8Dpbnnx6Z4oW0E2k1:16730:0:99999:7:::
123456 | [root@localhost ~]# usermod -L user00[root@localhost ~]# tail -3 /etc/shadowtcpdump:!!:16673::::::user00:!$6$9kOvPaa/SJuqojOm$X95/U0BzzcQjmYsXemYrrp725zW.PPZ.NIsV7 #密码前添加了一个!表示锁定TiuL4qLbTvPmrKqcrkWEs6aNNVknoeYD5vNSXs1aSpvgSGiv/:16673:0:99999:7:::likui:$6$p1AeYs41$xLsJpo1ZJuRSxmbtzlezRw6U/WCW95oE1v.HTQmDGzGflE IbNTXhY5QyTQI2nRdc9oH/O8Dpbnnx6Z4oW0E2k1:16730:0:99999:7::: |
给帐号、组帐号、帐号口令文件加上不可更改属性(加 锁),从而防止非授权用户获得权限
Shell[root@localhost ~]# chattr +i /etc/passwd[root@localhost ~]# chattr +i /etc/shadow //帐号口令文件 [root@localhost ~]# chattr +i /etc/group[root@localhost ~]# chattr +i /etc/gshadow //组帐号口令文件 [root@localhost ~]# lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow----i----------- /etc/passwd //查看以上文件属性 ----i----------- /etc/shadow----i----------- /etc/group /* 注意:执行以上权限修改之后, ----i----------- /etc/gshadow 就无法添加删除用户了 */[root@localhost ~]# chattr -i /etc/passwd //通过这个命令解锁 //将相关文件解锁后,便可以添加删除用户或修改密码了;操作完成后再锁定
1234567891011 | [root@localhost ~]# chattr +i /etc/passwd[root@localhost ~]# chattr +i /etc/shadow //帐号口令文件 [root@localhost ~]# chattr +i /etc/group[root@localhost ~]# chattr +i /etc/gshadow //组帐号口令文件 [root@localhost ~]# lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow----i----------- /etc/passwd //查看以上文件属性 ----i----------- /etc/shadow----i----------- /etc/group /* 注意:执行以上权限修改之后, ----i----------- /etc/gshadow 就无法添加删除用户了 */[root@localhost ~]# chattr -i /etc/passwd //通过这个命令解锁 //将相关文件解锁后,便可以添加删除用户或修改密码了;操作完成后再锁定 |
帐号口令的安全设置
设置密码有效期与最短长度限制
要求用户下次登录时修改密码
Shell[root@localhost ~]# vim /etc/login.defs #对于新建用户生效//修改以下配置 PASS_MAX_DAYS 90 //密码使用最长天数改为90天 PASS_MIN_DAYS 0 //密码最短使用天数 PASS_MIN_LEN 8 //密码最短长度改为8,必要情况下改为14PASS_WARN_AGE 7 //改换口令提醒天数[root@localhost ~]# chage -M 30 likui //修改已存在帐号的密码有效期 #对于已存在用户生效[root@localhost ~]# chage -d 0 likui //强制在下次登录时更改密码
12345678 | [root@localhost ~]# vim /etc/login.defs #对于新建用户生效//修改以下配置 PASS_MAX_DAYS 90 //密码使用最长天数改为90天 PASS_MIN_DAYS 0 //密码最短使用天数 PASS_MIN_LEN 8 //密码最短长度改为8,必要情况下改为14PASS_WARN_AGE 7 //改换口令提醒天数[root@localhost ~]# chage -M 30 likui //修改已存在帐号的密码有效期 #对于已存在用户生效[root@localhost ~]# chage -d 0 likui //强制在下次登录时更改密码 |
命令历史限制
减少记录的命令条数
注销时自动清空历史命令记录
Shell[root@localhost ~]# vim /etc/profile//修改下面环境变量的值 HISTSIZE=50[root@localhost ~]# vim ~/.bash_logout//添加下面两行 history -cclear
1234567 | [root@localhost ~]# vim /etc/profile//修改下面环境变量的值 HISTSIZE=50[root@localhost ~]# vim ~/.bash_logout//添加下面两行 history -cclear |
终端自动注销
闲置600秒后自动注销
Shell[root@localhost ~]# vim ~/.bash_profile//在行尾添加下面的环境变量 export TMOUT=600
123 | [root@localhost ~]# vim ~/.bash_profile//在行尾添加下面的环境变量 export TMOUT=600 |
限制使用su命令的用户
启用pam_wheel认证模块
将允许使用su命令的用户加入wheel组
Shell[root@localhost ~]# vim /etc/pam.d/su//找到下面行,将“#”号删掉 #auth required pam_wheel.so use_uid[root@localhost ~]# gpasswd -a likui wheel正在将用户“likui”加入到“wheel”组中
12345 | [root@localhost ~]# vim /etc/pam.d/su//找到下面行,将“#”号删掉 #auth required pam_wheel.so use_uid[root@localhost ~]# gpasswd -a likui wheel正在将用户“likui”加入到“wheel”组中 |
重置root密码
CentOS 7与之前的版本不同,当忘记root密码,并采用GRUB2为启动器时,将无法通过单用户模式重置root密码(单用户模式解锁请查看系统密码恢复相关文章)。下面将介绍如何 重置CentOS 7的root密码。
启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式。
进入后,找到“linux16”开头的地方,按“end”键到最后, 输入“rd.break”,按“ctrl+x”进入。
输入“mount -o remount,rw /sysroot/”命令,重新挂载系 统分区
再输入“chroot /sysroot/”命令,改变根
修改“root”密码
如果之前系统启用了selinux,必须运行“touch /.autorelabel” 命令,否则将无法正常启动系统
然后按“Ctrl+d”退出
输入“reboot”命令重启,OK
为GRUB2菜单加上防编辑密码 以防止一些恶意者像刚才一样修改root密码的行为
用“grub2-mkpasswd-pbkdf2”命令生成加密口令
复制如下部分“grub.pbkdf2.sha512.10000.D……”
编辑“/boot/grub2/grub.cfg”
作如下修改
添加“set superusers=“username””
添加“password_pbkdf2 username grub.pbkdf2.sha… …”
保存,退出,并测试
修复MBR
MBR(Master Boot Record主引导记录):
硬盘的0柱面、0磁头、1扇区称为主引导扇区。其中446Byte是 bootloader,64Byte为Partition table,剩下的2Byte为magic number。
先进行备份,再破坏
使用dd命令,将sda的mbr进行备份
再用zero设备生成446字节的“0”写入mbr
重启后发现系统已坏
装入系统安装光盘,在光盘引导界面选择“Troubleshooting”
选择救援模式“Rescue a CentOS system”
装选择“Contunue”,以rw模式挂载分区
进入救援模式
使用grub2-install命令重建bootloader,再使用sync写入硬盘, reboot重启系统
验证,重启后无错误,grub正常运行
修复GRUB
grub配置文件丢失,开机后会直接进入grub界面,显示为grub>。 由于GRUB2的配置文件极其复杂,所以一定要作好备份
先备份再破坏
重启系统后,进入“grub>”状态,输入以下命令设置启动参数, 并启动:
Shellgrub>insmod xfsgrub>set root=‘hd0,1’ grub>linux16 /vmlinuz-3.10.0-229.el7.x86_64 root=/dev/mapper/centos-rootgrub>initrd16 /initramfs-3.10.0-229.el7.x86_64.img grub>boot
1234 | grub>insmod xfsgrub>set root=‘hd0,1’ grub>linux16 /vmlinuz-3.10.0-229.el7.x86_64 root=/dev/mapper/centos-rootgrub>initrd16 /initramfs-3.10.0-229.el7.x86_64.img grub>boot |
启运成功后,以“root”身份登录,还原配置
重启,测试,成功修复
转载于:https://blog.51cto.com/wangjiatong/1875736