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