当前位置: 首页 > news >正文

Linux系统安全及应用(一):密码安全、命令历史限制、终端自动注销、su命令和限制su命令


文章目录

  • 1账号安全基本措施
    • 系统账号清理
    • 密码安全控制
    • 命令历史限制
    • 终端自动注销
    • 拓展:两个profile文件的问题修复过程
  • 2使用su命令切换用户
  • 3限制使用su命令的用户


1账号安全基本措施

系统账号清理

  • 将非登录用户的Shell设为/sbin/nologin

    禁止非登录用户通过Shell访问系统

    usermod -s /sbin/nologin 用户名
    
  • 锁定长期不使用的账号

    对长期不活跃的账号进行锁定,避免潜在的安全风险。

    usermod -L 用户名  # 锁定用户
    passwd -l 用户名  # 锁定密码
    passwd -S 用户名  # 查看账号状态
    
  • 删除无用的账号

    清理无用的账号,保持系统用户列表的简洁和安全。

    userdel [-r] 用户名  # 使用-r选项同时删除用户的主目录
    
  • 锁定账号文件passwd、 shadow

    锁定关键系统文件以防止未授权的更改。

    chattr +i /etc/passwd /etc/shadow  # 锁定文件
    lsattr /etc/passwd /etc/shadow  # 查看文件属性
    chattr -i /etc/passwd /etc/shadow  # 解锁文件
    

密码安全控制

  • 设置密码有效期

    强制用户定期更新密码,提升密码的安全性。

    新建用户: 修改全局密码策略,适用于所有新建用户。

    [root@localhost ~]# vi /etc/login.defs # 修改配置文件
    PASS_MAX_DAYS  30  # 密码有效期为30天
    

    已有用户: 针对特定用户设置密码有效期。

    [root@localhost ~]# chage -M 30 lisi  
    # 设置用户lisi密码有效期为30天
    [root@localhost ~]# cat /etc/shadow | grep lisi  
    # 查看用户lisi的密码信息
    
  • 要求用户下次登录时修改密码

    强制用户在下次登录时更新密码,提升安全性。

    [root@localhost ~]# chage -d 0 zhangsan  
    # 将用户zhangsan的密码修改日期设置为0[root@localhost ~]# cat /etc/shadow | grep zhangsan  
    # 验证更改
    

命令历史限制

  • 减少记录的命令条数

    限制历史命令记录数量,减少敏感信息的暴露。

    [root@localhost ~]# vi /etc/profile
    export HISTSIZE=200  # 设置历史记录条数为200
    [root@localhost ~]# source /etc/profile  # 使更改生效
    
  • 登录时自动清空历史

    在每次登录时自动清空命令历史记录,防止命令泄露。

    [root@localhost ~]# vi ~/.bashrc
    ##在文件中插入:输入空字符覆盖文件实现清空
    echo "" > ~/.bash_history 
    

终端自动注销

  • 闲置600秒后自动注销

    设置终端闲置600秒后自动注销,防止长时间未操作的会话被利用。

[root@localhost ~]# vi /etc/profile
export TMOUT=600  # 设置超时时间为600秒
[root@localhost ~]# source /etc/profile  # 使更改生效

拓展:两个profile文件的问题修复过程

  1. 注销时间设置太短导致无法输入命令

    解决办法:在另一台机器上使用scp命令,将本机正常机器profile传输覆盖到故障机器的同名文件。

    scp /etc/progile root@192.168.10.11:/etc/profile
    
  2. 误删了profile文件,除最基础命令外其余命令都无法使用

    解决办法:同样方式,复制使用另一台机器的文件,在本机操作,拷贝正常机器的profile文件到本机再source。

    scp /etc/progile root@192.168.10.12:/etc/profile
    

2使用su命令切换用户

用途

su是Substitute User的缩写,用于切换用户身份

格式

su - 目标用户  # 使用目标用户的登录shell环境

密码验证

  • root用户:任意用户切换到root时,不验证密码
  • 普通用户:切换到其普通用户时,需要验证目标用户的密码
##带-选项表示将使用目标用户的登录shell环境
[test@localhost ~]# su - root  # 切换到root用户
[root@localhost ~]# whoami
root  # 验证当前用户为root、

3限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组

    仅允许wheel组内的用户使用su命令切换到其他用户。

  • 启用pam_wheel认证模块(PAM系统相关的认证权限管理)

    通过PAM模块控制su命令的使用权限

    [root@localhost ~]# vi /etc/pam.d/su
    #%PAM-1.0
    auth   sufficient pam_rootok.so  # 如果是root用户,直接通过
    auth   required pam_wheel.so use_uid  # 仅允许wheel组成员使用su
    
  • 查看su操作记录

    su命令的操作记录保存在安全日志文件/var/log/secure中。


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 停止项目大小调整,开始搜索层自动缩放!
  • HarmonyOS.FA开发流程
  • 企业微信推送消息的Java实现教程
  • 解决svn上传代码,遇到文件冲突的问题
  • Python必备——高效配置与使用Pip换源
  • C++ | Leetcode C++题解之第331题验证二叉树的前序序列化
  • 【从零开始一步步学习VSOA开发】发布订阅重连时同步
  • 代码随想录算法训练营Day26 | Leetcode 455 分发饼干 Leetcode 376 摆动序列 Leetcode 53 最大子序和
  • 【CSharp】简单定义一个异步方法
  • python连接MySQL数据库使用pymysql
  • 嵌入式day25
  • SAP与网易大数据系统集成案例
  • C++实现单例模式/工厂模式
  • 质量管理理论(至简)
  • Latex或者word里面mathtype类型的数学公式如何变成mathematica里面的形式
  • python3.6+scrapy+mysql 爬虫实战
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • bearychat的java client
  • golang中接口赋值与方法集
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Python socket服务器端、客户端传送信息
  • SpiderData 2019年2月23日 DApp数据排行榜
  • ViewService——一种保证客户端与服务端同步的方法
  • 搭建gitbook 和 访问权限认证
  • 浮动相关
  • 回顾2016
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 入口文件开始,分析Vue源码实现
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  •  一套莫尔斯电报听写、翻译系统
  • ionic入门之数据绑定显示-1
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​浅谈 Linux 中的 core dump 分析方法
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #{} 和 ${}区别
  • #Linux(权限管理)
  • $(selector).each()和$.each()的区别
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (四)库存超卖案例实战——优化redis分布式锁
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)u-boot-nand.bin的下载
  • (一)认识微服务
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)创业家杂志:UCWEB天使第一步
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .ai域名是什么后缀?
  • .net framework4与其client profile版本的区别