了解/etc/shadow文件

时间:2020-01-09 10:43:56  来源:igfitidea点击:

您能解释在Linux或者类似UNIX的系统中使用的/etc/shadow文件格式吗?

"/etc/shadow"文件以加密格式(更像是密码的哈希)存储用户帐户的实际密码,并具有与用户密码相关的其他属性。
基本上,它存储安全的用户帐户信息。
所有字段都用冒号(:)分隔。
对于/etc/passwd文件中列出的每个用户,它每行包含一个条目。

/etc/shadow文件字段

  • 用户名:这是您的登录名。
  • Password:这是您的加密密码。密码长度至少为8-12个字符,包括特殊字符,数字,小写字母等。通常,密码格式设置为$id $salt $hashed$id是GNU/Linux上使用的算法,如下所示:
  • $1 $是MD5
  • $2a $``是河豚
  • $2y $``是河豚
  • $5 $是SHA-256
  • $6 $是SHA-512
  • 上次密码更改(最后一次更改):自1970年1月1日以来,密码最后一次更改的天数
  • Minimum:两次更改密码之间所需的最少天数,即允许用户更改其密码之前剩余的天数
  • Maximum:密码有效的最大天数(在该用户被迫更改其密码之后)
  • 警告:密码到期前的天数,警告用户必须更改其密码
  • "无效":密码过期后,该帐户被禁用的天数
  • Expire:自1970年1月1日起已禁用该帐户的天数,即一个绝对日期,指定何时不再使用登录名。

后6个字段提供密码时效和帐户锁定功能。
您需要使用chage命令来设置密码时效。
根据阴影的手册页,必须填写密码字段。
加密的密码由64字符字母a至z,A至Z,0至9,\中的13至24个字符组成。
和 /。

(可选)它可以以$字符开头。
这意味着加密的密码是使用其他(不是DES)算法生成的。
例如,如果它以$1 $开头,则表示使用了基于MD5的算法。
请注意,以感叹号(`!)开头的密码字段表示该密码已被锁定。
该行上的其余字符代表密码被锁定之前的密码字段。

如何更改密码?

使用以下语法来更改您自己的密码:

$ passwd

有关更多信息,请参见passwd命令教程页面。

如何更改其他用户的密码?

您必须是root用户才能更改所有其他用户的密码:

# passwd userNameHere

或者

$ sudo passwd userNameHere

如何更改或者设置密码过期信息?

要更改用户密码的有效期信息,请在Linux上使用chage命令。
语法如下(同样,您必须是root用户才能再次设置密码),如下所示:

chage username
chage [options] username 
chage Hyman
chage -l tom

选项如下:

-d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -R, --root CHROOT_DIR         directory to chroot into
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

如何验证密码文件的完整性?

使用pwck命令验证用户和身份验证信息的完整性。
它检查/etc/passwd和/etc/shadow中的所有条目是否具有正确的格式并包含有效数据。
提示用户删除格式不正确或者具有其他不可纠正错误的条目。
语法为:

pwck -r /etc/passwd
sudo pwck -r /etc/shadow
sudo pwck -r /etc/passwd /etc/shadow
pwck [options] /etc/shadow

选项如下:

-b, --badnames                allow bad names
  -h, --help                    display this help message and exit
  -q, --quiet                   report errors only
  -r, --read-only               display errors and warnings but do not change files
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --sort                    sort entries by UID