linux下的/etc/passwd与/etc/shadow

发布时间:2020-08-22编辑:脚本学堂
linux下的/etc/passwd与/etc/shadow

首先,我们来看/etc/passwd,该目录存储的是操作系统用户信息,该文件为所有用户可见。

linux系统添加一个帐号:
  useradd -g mysql -d /home/test -m test(:新建一个用户test, 属于mysql组,开始目录是/home/test)

  然后进入 /etc/passwd,可以看到如下信息,在最后一行可以看到刚加的用户的信息。如下:
   sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
   dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
   webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
   squid:x:23:23::/var/spool/squid:/sbin/nologin
   pcap:x:77:77::/var/arpwatch:/sbin/nologin
   haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
   xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
   hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
   gdm:x:42:42::/var/gdm:/sbin/nologin
   hzmc:x:500:500:hzmc:/home/hzmc:/bin/bash
   mysql:x:501:501::/home/mysql:/bin/bash
   chenhua:x:503:501::/home/chenhua:/bin/bash
   test:x:504:501::/home/test:/bin/bash

可以看出/etc/passwd文件存放的是用户的信息,由6个分号组成的7个信息,解释如下:
   (1):用户名。
   (2):密码(已经加密)
   (3):UID(用户标识),操作系统自己用的
   (4):GID组标识。
   (5):用户全名或本地帐号
   (6):开始目录
   (7):登录使用的shell,就是对登录命令进行解析的工具。

下面为test用户设置密码,执行如下命令
passwd test
[root@localhost etc]# passwd test
   Changing password for user test.
   New UNIX password:
   Retype new UNIX password:
   passwd: all authentication tokens updated successfully.
  [root@localhost etc]#
然后进入/etc/shadow文件下面可以看到如下信息
  gdm:!!:14302:0:99999:7:::
  hzmc:$1$JZMjXqxJ$bvRpGQxbuRiEa86KPLhhC1:14302:0:99999:7:::
  mysql:!!:14315:0:99999:7:::
  chenhua:$1$YBJZNyXJ$BnpKFD58vSgqzsyRO0ZeO1:14316:0:99999:7:::
  test:$1$hKjqUA40$OelB9h3UKOgnttKgmRpFr/:14316:0:99999:7:::

可以发现,共有9个栏目
(1):帐号名称
(2):密码:这里是加密过的,但高手也可以解密的。要主要安全问题(代!符号标识该帐号不能用来登录)
(3):上次修改密码的日期
(4):密码不可被变更的天数
(5):密码需要被重新变更的天数(99999表示不需要变更)
(6):密码变更前提前几天警告
(7):帐号失效日期
(8):帐号取消日期
(9):保留条目,目前没用