Linux系统安全(用户、密码、grub引导密码、增加终端)

目录

系统安全

用户安全

密码安全

PAM认证

命令的历史

用户切换

命令的执行权限

grub引导密码

增加终端


系统安全

用户安全

|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 命令 | 说明 |
| chattr +i /etc/passwd | chattr:为文件添加特殊权限 +i:指定文件设为不可修改,只有root用户能为文件添加该权限 a:只能追加该文件 c:文件将被自动压缩以节省磁盘空间 d:该文件或目录不会被dump命令备份 s:当文件或目录被删除时,数据内容在磁盘上不会立即被清除,而是标记为删除 u:当文件或目录设置了u属性后,即使root用户也不能直接删除它,而是需要先移除这个属性 |
| chattr -i /etc/passwd | 将该文件减去不可修改的权限 |
| chattr +a 文件 | +a:append only,系统只允许在这个文件追加数据,而不允许修改、覆盖、删除这个文件。 比如使用 echo "aaa">>test.txt 命令来追加字符串 |
| lsattr [文件] | 查看指定文件的特殊权限 |

密码安全

|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 路径 | 说明 |
| /etc/login.defs | 在该文件内修改之后创建用户时的默认参数,修改后不会影响原有的用户账号 密码策略对管理员无效 PASS_MAX_DAYS 99999 密码的最大有效天数。超过这个天数后,用户需要更改密码。 PASS_MIN_DAYS 0 密码更改后,必须等待的最小天数才能再次更改密码。 PASS_MIN_LEN 5 最小密码长度,这一页项在这个文件内是无效的 PASS_WARN_AGE 7 密码到期前的警告天数 |

PAM认证

Pluggable authentication module - 可插拔认证模块

|------------|--------------------------------------------|
| 路径 | 说明 |
| /etc/pam.d | 该目录存放的都是pam认证文件 文件的作用是用户在使用命令的时候是否有权限使用该指令 |

命令的历史

|----------------|------------------------------------------------------------------------------------------------------|
| 命令 | 说明 |
| history | 列出系统使用过的命令 |
| history -c | 清除历史命令 |
| clear | 清屏 |
| export TMOUT=5 | 当系统超过5秒不执行命令时,退出终端,单位为秒 |
| 路径 | 说明 |
| /etc/profile | profile:全局环境变量文件,用户登录时会被加载 在该文件能够修改history命令能够显示行数 在第46行HISTSIZE=修改的行数 修改后已经登录的用户不会收到影响,修改后登录的用户会被影响 |
| .bash_logout | 该文件用于存储 用户退出时所执行的命令 |

用户切换

|----------|------------------------------------------------------------------------------------|
| 命令 | 说明 |
| su - 用户名 | 不采用当前用户环境信息,使用目标用户的环境信息切换用户 在root用户登录终端下可以使用su - 用户名 命令来切换用户,如果是普通用户切换到root登录则需要密码 |
| exit | 退出登录 |

命令的执行权限

|----------------------------------|----------------------------------------|
| 文件和命令 | 说明 |
| /etc/sudoers | 该文件为只读,为用户指定权限的文件,能够让用户执行哪些命令都是由该文件决定的 |
| visudo | 打开/etc/sudoers文件 |
| Defaults logfire="/var/log/sudo" | 用visudo命令在sudoers文件添加左侧命令,表示启用提权日志 |

grub引导密码

  • 密文
    • 对字符进行加密处理
  • 明文
    • 不加密

|----------------------------------------|-----------------------------------------------|
| 命令和路径 | 说明 |
| grub2-mkpasswd-pbkdf2 | 生成一个密码的密文 会根据你输入的口令根据算法变成密文 |
| /etc/grub.d/ | 该路径下存储的文件是系统在启动时依次要读取的 |
| 01_users | 该文件用于配置用户自定义在选中相应内核时按下e键后 |
| grub2-mkconfig -o /boot/grub2/grub.cfg | 生成GRUB引导加载器配置文件 修改完01_users文件后,需要重新生成grub配置文件 |

bash 复制代码
#!/bin/sh -e
cat << EOF
    set superusers="root" # 设置用户,哪个用户能够进入到grub的设置
    export superusers # 为超级用户设置参数
    password_pbkdf2 root grub.pbkdf2.sha512.10000.39CDB34D784C4B846111317645175228B9BBCBADC536D16CD52E6AF088056E04482C9D77320A00AFE0457A0B5B2ECFA56F94260ED1AC8939267B7B2E85388BC6.1D92BACD35D4DEB2C87D7BB1867A23B1A081C86742B9A3CF2E7B3B8053BB1B5F01CF3794433C2265FDFA2250EDF6414BA52E8D2F57FC8338878EB28B3240B462   # 给root设置加密以后的密码,示例为密文,明文则是加密前的密码
EOF
  1. 先通过 grub2-mkpasswd-pbkdf2 命令生成一个密文
  2. 在 /etc/grub.d/ 目录下修改 01_users 文件为上方示例
  3. 使用 grub2-mkconfig -o /boot/grub2/grub.cfg 重新生成grub配置文件
  4. 再重启系统来到grub引导界面
  1. 按下e键,就会提示输入登录的用户名和密码
  2. 登录成功后就进入内核的配置页面

增加终端

  • tty终端默认为6个,Linux桌面版的桌面默认安装在tty1上,而进入系统默认选择tty1的终端,所以桌面版的linux一进系统就是桌面

|----------------------------------|-------------------------------------------------------------------------|
| 命令和文件 | 说明 |
| /etc/securetty | 用于控制哪些终端允许用户登录 如果不想让用户在某一个终端登录,就把终端名注释掉 |
| /etc/systemd/login.conf | 该文件 [Login] [Login] #NAutoVTs=6 改为 NAutoVTs=12 表示虚拟终端分配的数量改为12,默认为6 |
| systemctl restart systemd-logind | 重启用户登录会话相关服务 当你修改了比如终端数量的配置,需要重启该服务才会同步你修改的配置 |
| /etc/nologin | 在/etc目录下创建名为nologin的空文件,可以阻止普通用户登录终端 |

相关推荐
网安CILLE2 分钟前
2024年某大厂HW蓝队面试题分享
网络·安全·web安全
丶21368 分钟前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
沐风ya9 分钟前
Reactor介绍,如何从简易版本的epoll修改成Reactor模型(demo版本代码+详细介绍)
网络
SUGERBOOM12 分钟前
【网络安全】网络基础第一阶段——第一节:网络协议基础---- OSI与TCP/IP协议
网络·网络协议·web安全
神即道 道法自然 如来23 分钟前
Jenkins怎么设置每日自动执行构建任务?
运维·jenkins
petaexpress29 分钟前
常用的k8s容器网络模式有哪些?
网络·容器·kubernetes
小黑爱编程30 分钟前
【LInux】HTTPS是如何实现安全传输的
linux·安全·https
BeyondESH35 分钟前
Linux线程同步—竞态条件和互斥锁(C语言)
linux·服务器·c++
hanniuniu1338 分钟前
详细解读,F5服务器负载均衡的技术优势
运维·服务器·负载均衡
鱼饼6号1 小时前
Prometheus 上手指南
linux·运维·centos·prometheus