1. 用户及组管理的配置文件主要有四个,分别为:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
2. 用户账号
跟用户账号有关的两个重要配置文件为:/etc/passwd /etc/shadow。
/etc/passwd文件主要用来管理用户UID/GID重要参数
配置信息总共分为七列:
用户名:密码:用户ID:组ID:描述信息:家目录:用户默认shell
/etc/shadow文件专门管理密码相关数据
配置信息分为九列:
用户名:用户密码(加密过):最近一次更改的时间:密码使用最少天数:
密码使用最大天数:密码过期前几天提醒用户:密码过期几天后帐号会被锁定:
帐户过期时间(从1970-1-1开始计算):保留位
3. 用户组
跟用户组有关的两个重要配置文件为:/etc/group /etc/gshadow。
/etc/group主要是组的一些配置信息
配置信息分为四列:
组名:密码:组ID:用户列表
/etc/gshadow主要是包含组加密信息
配置信息分为四列:
组名称:组密码:组管理员:组成员(作为附加组的成员)
4. 用户/组管理的一些常用命令
useradd 、usermod 、userdel 、passwd 、chage、groupadd、groupdel、gpasswd
useradd [options] LOGIN -u UID -o 配合-u 选项,不检查UID的唯一性 -g GID/GROUP NAME:指明用户所属基本组,可为组名,也可以GID -c "COMMENT":用户的注释信息 -d HOME_DIR: 以指定的路径(不存在)为家目录 确保指定目录的目录名要存在,而基名不要存在 -s SHELL: 指明用户的默认shell程序,默认不指定是为/bin/bash -G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在 -N 不创建私用组做主组,使用users组做主组 -r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000 -m 创建家目录,用于系统用户 -M 不创建家目录,用于非系统用户
usermod [OPTION] login -u UID: 新UID -g GID: 新主组 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项 -s SHELL:新的默认SHELL -c 'COMMENT':新的注释信息 -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项 -l login_name: 新的名字; -L: lock指定用户,在/etc/shadow 密码栏的增加 ! -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉 -e YYYY-MM-DD: 指明用户账号过期日期 -f INACTIVE: 设定非活动期限
userdel -r 用户名
passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限
passwd: 修改自己的密码 常用选项: -l:锁定指定用户 -u:解锁指定用户 -e:强制用户下次登录修改密码 --stdin:从标准输入接收用户密码 echo "PASSWORD" | passwd --stdin USERNAME
chage Options: -d, --lastday LAST_DAY 修改密码上一次的修改时间 -E, --expiredate EXPIRE_DATE 设置密码的过期时间 -I, --inactive INACTIVE 设置密码过期之后多少天触发帐户过期 -l, --list 列出信息 -m, --mindays MIN_DAYS 设置密码的最小存活期 -M, --maxdays MAX_DAYS 设置密码的最大存活期 -W, --warndays WARN_DAYS 设置密码过期之前多少天提醒用户
groupadd -g GID GNAME -r GNAME
groupdel GNAME 删除用户组
gpasswd Options: -a, --add USER 增加单个用户到指定组当中(组管理员可执行) -d, --delete USER 从指定组中删除单个用户(组管理员可执行) -r, --delete-password 将指定组的组密码删除(组管理员可执行) -R, --restrict 限制组成员访问该组 -M, --members USER,... 一次性设置组成员(仅root执行) -A, --administrators ADMIN,... 设置组管理列表(root执行)
groupmems -g GNAME -a USERNAME 加用户加入到指定组 -d USERNAME 把用户从指定组删除 -p 清除该组的所有成员 -l 列出组成员列表