用户管理文件

更新时间:
2024-05-13
下载文档

用户管理文件

ls 命令可以查看目录中文件信息。

【命令格式】

ls [path name]

【常用选项】


【参数说明】

[path name]:路径名

以下是 ls 命令查看/etc 目录的执行结果:

# cd /etc/
# ls
passwd           group              shadow             fs_init.sh      qtenv.sh        qtln_4.8.6.sh   startup.sh        profile           pointercal

SylixOS 中用户账号信息是由 /etc/passwd 和 /etc/shadow 文件共同维护的,用户组信息由 /etc/group 文件维护。在这三个文件中,每个用户都有一个相应的记录。当利用控制台等终端注册,按照系统提示输入用户名和密码后,系统会根据用户提供的用户名检查 /etc/passwd 文件,然后根据用户提供的密码,利用同一加密算法加密后再与 /etc/shadow 文件中的密码字段进行比较,同时检查其他诸如密码有效期等字段。如果通过了验证码,按照 /etc/passwd 文件指定的主目录和命令解释程序,用户即可进入自己的主目录。

除了用户名和密码外,每个用户的用户 ID、用户组 ID、主目录和命令解释程序等相关信息分别存放在/etc/passwd 和/etc/shadow 文件中。

/etc/passwd 文件

/etc/passwd 文件包含了 SylixOS 中除密码之外的主要用户信息,每个用户信息占用一行,每一行由 7 个字段组成,字段之间以冒号“:”作为分隔符。/etc/passwd 文件的格式定义如下:

username:password:uid:gid:comment: login info:home_dir:login_shell
  • username:用户名,由 2 个以上字符组成,在 SylixOS 中用户名唯一的。
  • password:这个字段原为用户密码,但是密码现已移至 /etc/shadow 文件中。因此如果用户设有密码,这个字段将包含一个小写字母“x”,加密后的密码存储在 /etc/shadow 文件中,如果这个字段为“!!”,表示相应的用户无密码无法正常地注册到系统,如果这个字段内容不是以上两种情况,则表示相应的用户为禁止状态。
  • uid:用户 ID(用户标识),用户 ID 是系统分配给每个用户的唯一数字标识,是系统识别每个用户的主要手段。当系统需要了解用户信息(如账号字段的内容)时,通常均以用户 ID 作为索引,检索/etc/passwd 文件。用户 ID 是一个 32 位的无符号整数,其中 0~99 保留为系统用户使用,自定义的普通用户 ID 应位于 100~60000 范围内。考虑到与其他系统的兼容性,SylixOS 建议使用 16 位无符号整数的最大值 65535 作为用户 ID 的上限。
  • gid:用户组 ID(用户组标识),SylixOS 中的每个用户均应属于某个用户组,每个用户组除组名之外,也有一个相应的用户组 ID。同样,ID 号 0~99 保留为系统用户使用。
  • comment:注释信息,通常包含用户全名、用户职能等用户信息。
  • login info:登录信息。
  • home_dir:用户主目录(全路径名)。用户主目录是分配给用户的一个子目录,供用户存储个人文件使用,也是用户注册后的起始工作目录。通常,SylixOS 采用 /home/username 形式的用户主目录结构,其中 username 为注册的用户名。
  • login_shell:指定用户注册后调用的 Shell(命令解释程序)。

这些字段包含在 <pwd.h> 中定义的 passwd 结构中,对应关系,如下表所示。

功能描述struct passwd 成员/etc/passwd字段
用户名pw_nameusername
加密口令pw_passwdpassword
用户IDpw_uiduid
用户组IDpw_gidgid
注释pw_commentcomment
登录信息pw_gecoslogin info
初始工作目录pw_dirhome_dir
初始Shellpw_shelllogin_shell

SylixOS 中 /etc/passwd 文件初始内容如下:

# cat passwd
root:x:0:0:root::/root:/bin/sh
sylixos:x:1:1:developer::/home/sylixos:/bin/sh
apps:x:2:2:application::/home/apps:/bin/sh
tty:!:3:3:tty owner::/home/tty:/bin/false
anonymous:!:4:4:anonymous user::/home/anonymous:/bin/false

/etc/shadow 文件

/etc/shadow 是一个限制普通用户访问的系统文件,其中存有加密形式的密码以及其他相关的信息。与 /etc/passwd 文件相对应,/etc/shadow 文件中的每个用户密码信息占用一行,每行由 9 个字段组成,其中以冒号“:”作为分隔符。其文件格式定义如下:

username:password:lastchanged:mindays:maxdays:warn:inactive:expire:reserve
  • username:用户名,参见 /etc/passwd 文件相应部分。
  • password:加密形式的密码(crypt_safe 函数生成)。如果这个字段为“!!”,则表示相应的用户没有设置密码。
  • lastchanged:从 1970 年 1 月 1 日开始算起,直至最后一次修改密码之日的天数。
  • mindays:保持密码稳定不变的最小天数,仅当超过此限,才能修改密码。这个字段必须大于等于 0,才能启用密码有效期检查。
  • maxdays:保持密码有效的最大天数。超过此限,系统将会强制提醒用户更换密码。
  • warn:指定在密码有效期到期之前需要提前多少天向用户发出警告信息。
  • inactive:指定在密码有效期到期之后一直不能访问系统,但仍保证其账号信息有效的最多天数,超过此限将禁用此用户的账号。
  • expire:指定用户账号有效期的截止日期。到期后,账号将自动失效,用户无法再注册到系统。
  • reserve:保留字段。

这些字段包含在 < shadow.h> 中定义的 spwd 结构中,对应关系,如下表所示。

功能描述struct spwd成员/etc/shadow字段
用户名sp_nampusername
加密口令sp_pwdppassword
上次更改口令以来经过的时间sp_lstchglastchanged
经过多少天后允许更改sp_minmindays
要求更改剩余天数sp_maxmaxdays
到期警告天数sp_warnwarn
账户不活动之前剩余天数sp_inactinactive
账户到期天数sp_expireexpire
保留sp_flagreserve

SylixOS 中 /etc/shadow 文件初始内容如下:

# cat shadow
root:$1$qY9g/6K4$/FKP3w1BsziKGCP3uLDnG.:0:0:99999:7:::
sylixos:$1$qY9g/6K4$WFEx17sxu/3aL3wE.u8NZ1:0:0:99999:7:::
apps:$1$qY9g/6K4$buV57yqE0kMbApOVI/jKM1:0:0:99999:7:::
anonymous:!!:0:0:99999:7:::

/etc/group 文件

/etc/group 文件包含用户组信息,每个用户组信息占用一行,每一行由 3 个字段组成,字段之间以冒号“:”作为分隔符。/etc/group 文件的格式定义如下:

username:password:gid:members
  • username:用户名,由 2 个以上字符组成,在 SylixOS 中用户名是唯一的。
  • password:这个字段原为用户密码,但是密码现已移至 /etc/shadow 文件中。因此,如果用户设有密码,这个字段将包含一个小写字母“x”,加密后的密码存储在/etc/shadow 文件中,如果这个字段为“!!”,表示相应的用户无密码无法正常地注册到系统,如果这个字段内容不是以上两种情况,则表示相应的用户为禁止状态。
  • gid:用户组 ID(用户组标识),SylixOS 中的每个用户均应属于某个用户组,每个用户组除组名之外,也有一个相应的用户组 ID。同样,ID 号 0~99 保留为系统用户使用。
  • members:此用户组的用户成员。

这些字段包含在 < grp.h> 中定义的 group 结构中,对应关系,如下表所示。

功能描述struct passwd 成员/etc/passwd 字段
用户名pw_nameusername
加密口令pw_passwdpassword
用户 IDpw_uiduid
用户组 IDpw_gidgid
注释pw_commentcomment
登录信息pw_gecoslogin info
初始工作目录pw_dirhome_dir
初始 Shellpw_shelllogin_shell

SylixOS 中 /etc/group 文件初始内容如下:

# cat group
root:x:0:root
sylixos:x:1:sylixos
apps:x:2:apps,hanhui,sylixos
tty:x:3:tty
anonymous:x:4:anonymous
文档内容是否对您有所帮助?
有帮助
没帮助