用户和组管理
1、概念
linux中用户是通过uid来区别的
管理员为 0 通常名称为root
1-1000为daemon进程用户,对守护进程获取资源进行权限分配
1000以后给用户进行交互式登录使用
linux中组是通过gid来区别的
管理员组通常为0
一个用户至少有一个组,默认创建用户时会生成和其同名组
一个组可以有多个用户
2、配置
#/etc/passwd:(用户及其属性信息名称、UID、主组ID等)
login name:登录用名(wang)
passwd:密码 (x)
UID:用户身份编号 (1000)
GID:登录默认所在组编号 (1000)
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)
#/etc/shadow:用户密码及其相关属性
登录用名
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间
密码再过几天可以被变更(0表示随时可被变更)
密码再过几天必须被变更(99999表示永不过期)
密码过期前几天系统提醒用户(默认为一周)
密码过期几天后帐号会被锁定
从1970年1月1日算起,多少天后帐号失效
/etc/group:组及其属性信息
群组名称:就是群组名称
群组密码:通常不需要设定,密码是被记录在 /etc/gshadow
GID:就是群组的 ID
以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshadow:组密码及其相关属性
群组名称:就是群的名称
群组密码:
组管理员列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:多个用户间用逗号分隔
/etc/default/useradd
新建用户的默认配置
GROUP=100
HOME=/home
INACTIVE=-1 #对应/etc/shadow文件第7列,即用户密码过期的宽限期
EXPIRE= #对应/etc/shadow文件第8列,即用户帐号的有效期
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
3、管理
3.1 用户
3.1.1 创建
useradd [选项] username
选项:
-u UID
-o 配合-u 选项,不检查UID的唯一性
-g GID 指明用户所属基本组,可为组名,也可以GID
-c "COMMENT“ 用户的注释信息
-d HOME_DIR 以指定的路径(不存在)为家目录
-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 CentOS 6之前: ID<500,CentOS7 以后: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
-p 指定加密的密码
例子:
useradd -r -u 48 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache
创建一个系统用户,uid为48 组为apache 不能登录shell 家目录为/var/www
3.1.2 更改
usermod [选项] username
选项:
-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: 设定非活动期限,即宽限期
例子:
usermod -u 49 -g 1001 -s /sbin/login -l test apache
3.1.3 删除
userdel [选项] username
选项:
-f, --force强制
-r, --remove删除用户家目录和邮箱
例子:
userdel -r -f test
3.1.4 切换用户
su [选项] username
选项:
- 登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
3.1.5 查看用户信息
id username
finger username
3.2 密码
3.2.1 密码设置
![image-20231206090758518]()
passwd [选项] UserName
选项:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码,Ubuntu无此选项
3.2.2 修改密码策略
chage [选项] username
选项:
-d LAST_DAY #更改密码的时间
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
-I --inactive INACTIVE #密码过期后的宽限期
-E --expiredate EXPIRE_DATE #用户的有效期
-l 显示密码策略
3.3 组
3.3.1 创建
groupadd [选项] groupname
选项:
-g GID 指明GID号;[GID_MIN, GID_MAX]
-r 创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000
范例:
groupadd -g 48 -r apache
3.3.2 修改
groupmod [选项] group
选项:
-n group_name: 新名字
-g GID: 新的GID
3.3.3 删除
groupdel [选项] GROUP
选项:
-f, --force 强制删除,即使是用户的主组也强制删除组,但会导致无主组的用户不可用无法登录
3.3.4 更改组密码
gpasswd [选项] GROUP
-a user 将user添加至指定组中
-d user 从指定附加组中移除用户user
-A user1,user2,... 设置有管理权限的用户列表
3.3.5 查看组信息
groupmems [选项] [动作]
选项:
-g, --group groupname #更改为指定组 (只有root)
-a, --add username #指定用户加入组
-d, --delete username #从组中删除用户
-p, --purge #从组中清除所有成员
-l, --list #显示组成员列表
sudo机制
# sudo 可以让普通用户使用root权限进行操作,方便进行权限管理
1、安装
yum -y install sudo
2、配置
# 配置文件
/etc/sudo.conf
/etc/sudoers
/etc/sudoers.d
# 语法检测
/usr/sbin/visudo -c file
# 配置语法规则
用户 登入主机=(代表用户) 命令
user host=(runas) command
user: 运行命令者的身份
host: 通过哪些主机
(runas):以哪个用户的身份
command: 运行哪些命令