【Linux/Unix系统编程手册笔记】用户和组

用户和组

用户和组ID的主要用途:

  • 确定各种系统资源的所有权
  • 对赋予进程访问上述资源的权限加以控制

1、密码文件:/etc/passwd

系统密码文件/etc/passwd针对系统的每一个用户账号进行描述,心如有:

  • 登录名
  • 经过加密的密码:长度是13个字符,如果启用了shadow密码,系统将不会解析该字段,这时/etc/passwd中的密码字段通常是"x",而经过加密的密码存储到了shadow密码文件中,若/etc/passwd中密码字段为空,那么该账户不需要密码(即便启用了shadow密码)
  • 用户ID:0是root账号
  • 组ID
  • 注释:finger(1)显示描述性文字
  • 主目录
  • 登陆shell

2、shadow密码文件:/etc/shadow

/etc/passwd中维护所用用户的信息,包括加密处理的密码,但带来安全问题,许多非特权用户需要读取密码文件中的其他信息,密码文件不得不对用户开放可读权限。

/etc/shadow仅仅特权程序可读取

3、组文件/etc/group

/etc/group文件包含的信息:

  • 组名
  • 经过加密处理的密码
  • 组ID
  • 用户列表

4、获取用户和组的信息

getpwnam
getpwuid
getgrnam
getgrgid
getspnam
getspent

5、密码加密和用户认证

UNIX采用单向加密算法对密码进行加密,所以由密码的加密形式无法还原出原始密码,加密算法封装在crypt()函数中。

char *crypt(const char *key, const char *salt)

crypt()函数加密密码的方式与标准login程序相同,这需要认证用户的程序来说极为有用。

你可能感兴趣的:(【Linux/Unix系统编程手册笔记】用户和组)