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

linux用户切换

在 Linux 系统中,/etc/shadow 文件存储了用户的加密密码和其他安全相关信息,因此默认只有 root 用户 才有权限读取。当你尝试用普通用户身份查看时,会收到 Permission denied 错误。


如何查看 /etc/shadow 文件?

方法 1:使用 sudo 临时提权
sudo cat /etc/shadow

系统会提示输入当前用户的密码(需有 sudo 权限)。

方法 2:切换到 root 用户
sudo -i          # 切换到 root 用户
cat /etc/shadow  # 直接查看
exit             # 退出 root 用户

/etc/shadow 文件格式解析

每行代表一个用户,格式如下(以 : 分隔的 9 个字段):

username:encrypted_password:last_change:min_age:max_age:warn:inactive:expire:reserved

示例

root:$6$T7/...:19203:0:99999:7:::
user:$6$xyz...:19210:0:30:5:10:19452:

字段说明

字段含义
1用户名(如 root, user
2加密密码(格式:$算法$盐值$哈希值
*! 表示账户被锁定
3上次修改密码的天数(从 1970-1-1 开始计算)
4密码最短使用期限(0 表示可随时修改)
5密码最长有效期(99999 表示永不过期)
6密码过期前的警告天数
7密码过期后的宽限天数
8账户绝对过期日期(YYYY-MM-DD)
9保留字段

常见操作示例

  1. 检查特定用户的密码状态

    sudo grep username /etc/shadow
    
  2. 判断账户是否被锁定

    sudo passwd -S username  # 输出中包含 "locked" 或 "password set"
    
  3. 修改密码策略(需 root 权限):

    sudo chage -l username   # 查看策略
    sudo chage -M 90 username # 设置密码 90 天后过期
    

安全注意事项

  1. 不要直接编辑 /etc/shadow
    修改用户密码或策略应使用以下命令:

    sudo passwd username      # 修改密码
    sudo usermod -e YYYY-MM-DD username  # 设置账户过期日期
    
  2. 备份文件
    修改前建议备份:

    sudo cp /etc/shadow /etc/shadow.bak
    
  3. 权限控制
    /etc/shadow 的权限应为 640-rw-r-----),所有者是 root,组为 shadow

    sudo ls -l /etc/shadow
    

为什么普通用户不能读取?

  • 该文件包含密码哈希值,泄露可能导致暴力破解风险。
  • 系统通过严格权限(-rw-r-----)和 shadow 用户组实现保护。

如果需要审计用户密码策略,建议使用 sudo chage -l username 等安全命令替代直接查看文件。

http://www.xdnf.cn/news/6712.html

相关文章:

  • 单序列双指针---初阶篇
  • NHANES指标推荐:MDS
  • 【常见的面试题总结】
  • Spring Cloud:Gateway(统一服务入口)
  • 从 Vue3 回望 Vue2:性能优化内建化——从黑盒优化到可控编译
  • Spring循环依赖详解
  • idea启用lombok
  • 【网络编程】十、详解 UDP 协议
  • 使用Python实现简单的人工智能聊天机器人
  • 海康相机连接测试-极简版
  • Python Socket编程:实现简单的客户端-服务器通信
  • Linux运行时的参数、命令、网络、磁盘参数和日志监控
  • 小黑独自享受思考心流:80. 删除有序数组中的重复项 II
  • 雷云4 鼠标滚轮单击失灵解决办法
  • 智慧灌区测控一体化闸门系统综合解决方案
  • 2:OpenCV—加载显示图像
  • 梯度下降算法:原理、实现与可视化分析
  • 谷歌地图代理 | 使用 HTML 和矢量模式 API 更轻松地创建 Web 地图
  • 软件测试—接口测试面试题及jmeter面试题
  • 记参加一次数学建模
  • C++运算符重载练习
  • Android 中使用通知(Kotlin 版)
  • PPT 转高精度 PDF API 接口
  • 【流程控制结构】
  • Vue.js教学第一章: Vue 简介与环境搭建
  • neo4j框架:java安装教程
  • 《项目管理知行合一:知识体系构建与实战应用指南》
  • 十步法基于Vanna打造高效便捷的 SQL 生成与业务洞察工具
  • 消息队列与Kafka基础:从概念到集群部署
  • 文件上传Ⅲ