linux用户体系

[TOC]

用户和组相关的配置文件

/etc/passwd 与 shadow 与 group 与 gshadow

  • 用户管理与密码安全
分类 配置文件 格式与示例 备注
用户 /etc/passwd 用户名:密码:UserID:GroupID:描述信息:主目录:默认Shell,共7列
root:x:0:0:root:/root:/bin/bash
第2列x表示密码存放在/etc/shadow
用户密码 /etc/shadow 参考备注2,共9列
root:password:20086:7:90:14:::
-
用户组 /etc/group 组名:组密码:GroupID:组内用户列表,共4列
root:x:0:
第2列x表示密码存放在/etc/gshadow
用户组密码 /etc/gshadow 组名:组密码:组管理员列表:组中的附加用户列表,共4列
root:::
第2列大多为空
而"!"代表该组没有组密码且无管理员
  • 备注1:/etc/shadow 是 /etc/passwd 的影子文件,它并不由 /etc/passwd 产生,这两个文件是对应互补的
  • 备注2:/etc/shadow 的格式为 [1]用户名:[2]加密密码:[3]最后依次修改日期:[4]密码最小有效期:[5]密码最大有效期:[6]密码到期前n天发出警告:[7]密码到期后宽限天数:[8]失效日期:[9]保留字段

/etc/login.defs

  • /etc/login.defs 用来 定义创建一个用户时的默认设置,比如指定用户的UID、GID、过期时间等,通常与/etc/password和/etc/shadow配套限制用户的设定
  • 如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说 /etc/shadow的配置优先级高于/etc/login.defs
参数名称 推荐值 默认值 备注
MAIL_DIR - /var/spool/mail 当创建用户时,同时在目录/var/spool/mail中创建一个用户mail文件
PASS_MAX_DAYS 90 99999 指定密码保持有效的最大天数
PASS_MIN_DAYS 7 0 表示自从上次密码修改以来多少天后用户才被允许修改口令
PASS_MIN_LEN 8 5 指定密码的最小长度
PASS_WARN_AGE 14 7 表示在口令到期前多少天系统开始通知用户口令即将到期
UID_MIN - 1000 指定最小UID为1000,即新建的用户UID从1000开始
UID_MAX - 60000 指定最大UID为60000
GID_MIN - 1000 指定最小GID为1000,即新建的组GID从1000开始
GID_MAX - 60000 指定最大GID为60000
CREATE_HOME - yes 此项是指定是否创建用户主目录,yes为创建,no为不创建
UMASK - 077 用户主目录的权限
USERGROUPS_ENAB - yes 指定删除用户的时候是否同时删除用户组
ENCRYPT_METHOD SHA512 SHA512 指定用户密码采用的加密规则

/etc/default/useradd

  • 当通过 useradd 命令不加任何参数创建一个用户后,用户默认的主目录一般位于 /home 下,默认使用的shell是 /bin/bash,这些都是存在于 /etc/default/useradd
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

/etc/skel 目录

  • 在创建一个新用户后,会在新用户的主目录下看到类似 .bash_logout .bash_profile .bashrc 等文件
  • 通常,/etc/skel 目录定义了新建用户在主目录下默认的配置文件,更改/etc/skel目录下的内容就可以改变新建用户默认主目录的配置文件信息
[root@localhost ~]# ls -a /etc/skel
.  ..  .bash_logout  .bash_profile  .bashrc

[root@localhost ~]# su - elk
[elk@localhost ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc

/etc/pam.d 目录

  • Linux 通过修改PAM(Pluggable Authentication Modules,一种用于统一管理用户认证的机制)的配置文件来设置密码复杂度,具体的配置文件可能因发行版而异,但通常位于 /etc/pam.d/ 目录下,主要文件包括:system-auth、password-auth
配置文件 作用 备注
/etc/pam.d/system-auth 设置密码复杂度(首推 红帽系统使用
/etc/pam.d/password-auth 设置密码复杂度 -
/etc/pam.d/common-password 设置密码复杂度 Debian系统使用
/etc/pam.d/su 限制使用su命令的账户 -
/etc/pam.d/passwd - -
  • Linux主要的密码策略模块包括:pam_passwdqc、pam_pwquality
密码策略模块 密码策略模块文件 对应的配置文件 备注
pam_passwdqc 没找到 /etc/login.defs -
pam_pwquality /usr/lib64/security/pam_pwquality.so /etc/security/pwquality.conf CentOS 7 采用
pam_cracklib /usr/lib64/security/pam_cracklib.so - CentOS 6 采用
pam_tally2 /usr/lib64/security/pam_tally2.so - 用于跟踪并记录失败的登录尝试次数
  • 注1:CentOS 6采用 pam_cracklib.so,CentOS 7及以后采用 pam_pwquality.so,它完全向下兼容 pam_cracklib.so(只要把 pam_pwquality.so 替换成 pam_cracklib.so 就可以了)
  • 参考:华为云-加固指导-账户口令
Copyright © www.sqlfans.cn 2024 All Right Reserved更新时间: 2024-12-29 17:54:59

results matching ""

    No results matching ""