/etc/passwd是linux的用户信息存放的地方,在早期的系统中加密后的用户密码也放在这个文件中,为了安全起见现在普遍使用shadow方式来将密码影射在/etc/shadow这个文件,这个文件只有root有权访问,赠强了安全性。
/etc/passwd中内容大致如下:
beaglidx:x:58:58:User for Beagle indexing:/var/cache/beagle:/sbin/nologin
在标准库中也提供了访问/etc/passwd中用户信息的接口,getpwent/putpwent等; 这些接口将/etc/passwd每一个用户信息读取出来,放在struct passwd结构中,这个结构定义为:
struct passwd {
char *pw_name; /* user name */
char *pw_passwd; /* user password */
uid_t pw_uid; /* user ID */
gid_t pw_gid; /* group ID */
char *pw_gecos; /* real name */
char *pw_dir; /* home directory */
char *pw_shell; /* shell program */
};
这个结构包括了上面一行中的所有成分,这里的密码是加密过的密码。密码的加密方式可以是DES、MD5等,通常使用MD5加密算法。
如果使用了shadow系统,密码将放在/etc/shadow中;访问shadow密码应使用另一套库文件。
passwd和shadow
最新推荐文章于 2024-04-03 11:32:53 发布