【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程序相同,这需要认证用户的程序来说极为有用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容