在Linux系统中,/etc/passwd
和 /etc/shadow
文件是用于存储系统用户账户信息的关键配置文件,它们各自扮演不同的角色,共同管理系统的用户身份验证和密码安全性。
/etc/passwd
文件:
- 作用:
- 存储了系统中的每个用户的基本信息,包括用户名、用户ID(UID)、组ID(GID)、用户信息描述(GECOS)、用户的主目录以及登录shell。
- 提供了一个用户账号数据库,系统服务和应用程序可以根据这个文件来识别用户,并关联到他们的主目录和默认shell环境。
- 虽然名为“passwd”,但实际上在这个文件中并不直接存放密码信息,而是指向另一个地方,现代系统中是一个占位符(通常是
x
),真正的密码存储在/etc/shadow
文件中。
- 文件格式:
- 每行代表一个用户账户,字段间以冒号 (
:
) 分隔,格式如下:
username:password_hash:UID:GID:GECOS:home_directory:login_shell
/etc/shadow
文件:
- 作用:
- 专门用来存储用户的加密密码信息,增强了系统的安全性,因为普通用户无法查看或修改这个文件的内容,只有root用户才有权限。
- 包含了密码相关设置,如密码的加密散列值、最近更改密码的日期、密码需要多久之后才能更改、密码过期警告期限、密码过期后的宽限天数、账户过期时间等。
- 文件格式:
- 同样,每行对应一个用户,与
/etc/passwd
中的用户一一对应,字段同样以冒号分割,格式大致如下:
username:password_hash:last_change:min:max:warn:inactive:expire:reserved
- 其中,
password_hash
是经过加密处理的实际密码,其他字段则对应密码策略参数。
综上所述:通过这种方式,Linux系统将敏感的密码信息与公开可读的用户信息分开,既方便了系统管理,又提高了密码的安全保护级别。当用户尝试登录时,系统会结合这两个文件来验证用户的身份及密码的有效性。