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 等安全命令替代直接查看文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值