概览

用户查看与密码修改,用户与密码存储文件结构.

查看用户

# cat /etc/passwd

展示示例:

root:x:0:0:root:/root:/bin/bash
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

详解:name:password:uid:gid:comment(显示名):home(桌面路径):shell.对于password目前采用x代替,实际保存在/etc/shadow文件中.

添加用户

# userdel username

修改帐号信息

# usermod username

修改当前登录人密码

$ passwd

修改指定登录人密码

# passwd username

密码存储

  1. 查看存储内容
    # cat /etc/shadow
    root:$6$.F0O33rN$WmmdBC2IVY7pJY/8Uek6QvWlzI0IccW6Ra6vZz.GnYxLVjWi5is5hxGRuv0VFGzFU0Qa4T7cps3TcMOzqogHz/:17305:0:99999:7:::
    mail:*:17110:0:99999:7:::
    nobody:*:17110:0:99999:7:::
    mysql:!!:17305::::::
    www:!!:17770:0:99999:7:::
    
  2. 根据:分割:
    • 第一列 : 用户
    • 第二列 :
      1. $分割的密文,内容为$id$salt$encrypted,含义如下:
        • id:加密枚举值:
          • 1 : md5
          • 2a : Blowfish(not in mainline glibc;added in some Linux distribution)
          • 5 : SHA-256(since glibc 2.7)
          • 6 : SHA-512(since glibc 2.7)
        • salt:随机生成的字符串,最大长度16位
        • encrypted : 通过加密算法和salt算出来的密文
      2. * : 代表帐号被锁定
      3. !! : 代表密码已过期
    • 第三列 : 修改日期,代表上一次修改密码的日期与1970-1-1相距的天数
    • 第四列 : 密码需要修改期限.99999永不需要改,0表示可以在人和时间修改,其他天数按照距离1970-1-1的天数内修改,否则密码过期
    • 第五列 : 修改期限前N天发出警告
    • 第六列 : 密码过期的宽限,密码过期后几天内可以修改正常使用
    • 第七列 : 帐号失效日期,值为距离1970-1-1的天数
    • 第八列 : 被保留项,暂时还没有被用上

参考

  1. /etc/shadow文件介绍
  2. Linux中用户和组的管理