专注细节
努力进步

linuxc程序设计之passwd与shadow解析(转)

一、/etc/passwd
/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式:
name:password:uid:gid:comment:home:shell
name 用户登录名
password 用户口令。此域中的口令是加密的,常用x表示。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。
uid 指定用户的 uid。用户登录进系统后,系统通过该值,而不是用户名来识别用户。
gid gid。如果系统要对相同的一群人赋予相同的权利,则使用该值。
comment 用来保存用户的真实姓名和个人细节,或者全名。
home 指定用户的主目录的绝对路径。
shell 如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。

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

例如:abc:x:501:501::/home/abc:/bin/bash

二、/etc/shadow

如果查看/etc/shadow文件存放的特殊帐号信息如下:
name:!!:13675:0:99999:7::: 
每一行给一个特殊帐户定义密码信息,每个字段用 : 隔开。
字段 1 定义与这个 shadow 条目相关联的特殊用户帐户。
字段 2 包含一个加密的密码。
字段 3 自 1/1/1970 起,密码被修改的天数
字段 4 密码将被允许修改之前的天数(0 表示“可在任何时间修改”)
字段 5 系统将强制用户修改为新密码之前的天数(1 表示“永远都不能修改”)
字段 6 密码过期之前,用户将被警告过期的天数(-1 表示“没有警告”)
字段 7 密码过期之后,系统自动禁用帐户的天数(-1 表示“永远不会禁用”)
字段 8 该帐户被禁用的天数(-1 表示“该帐户被启用”)
字段 9 保留供将来使用

如果查看/etc/shadow下存放的普通帐号信息如下:
(1):帐号名称
(2):密码:这里是加密过的,但高手也可以解密的。要主要安全问题(代!符号标识该帐号不能用来登录)
(3):上次修改密码的日期
(4):密码不可被变更的天数
(5):密码需要被重新变更的天数(99999表示不需要变更)
(6):密码变更前提前几天警告
(7):帐号失效日期
(8):帐号取消日期
(9):保留条目,目前没用
例如:abc:!!:14768:0:99999:7:::

分享到:更多 ()