用户和组的管理

概念

3A安全模型

  1. Authentication 认证
  2. Authorization 授权
  3. Accouting | Audition 审计

安全上下文

运行中的程序process,以进程发起者的身份运行,进程所能够访问的资源的权限取决于进程运行者的身份

密码加密

  • 加密算法默认为sha512
  • 更改加密算法:authconfig --passalgo=sha256 --update

用户 (username/UID)

分类

  1. root: uid为0
  2. 普通用户
  • 系统用户:对守护进程获取资源进行权限分配,uid:1-999
  • 登录用户:交互式登录的用户,uid:1000+

用户的组

  1. 主组(q:改变主组????)
  • 用户名必须属于一个且只有一个主组
  • 组名同用户名,且仅包含一个用户,私有组
  1. 附加组

用户配置文件

/etc/passwd 用户及其属性信息
  1. 文件格式
    登录名:密码(x):UID:GID:用户全民或注释:用户home目录:shell
/etc/shadow 用户密码及其相关属性
  1. 文件格式
  • 登录名
  • 密码
  • 从1970年1月1日起到密码最近一次被更改的时间 (last change date)
  • 密码再过几天可以被变更(0表示随时可变更) (min days)
  • 密码再过几天必须被变更(99999表示永不过期)(max days)
  • 密码过期前几天系统提醒用户(默认一周)(warn days)
  • 密码过期几天后账号被锁定(inactive days)
  • 从1970年1月1日起,多少天后账号失效


    image.png
文件操作
  • vipw
  • pwck

用户管理

创建用户
  1. 命令:useradd [options] user_name
options comments
-u UID 指定用户UID
-o 配合-u选项,不检查UID唯一性
-g GID 指明用户所属的基本组,可以为组名,也可以是gid
-c "comments" 用户注释信息
-d Home_Dir 以指定的路径为用户home目录
-s Shell 指明用户默认的shell程序,可用列表在/etc/shells文件中
-G Group1[, Group2,...] 为指定用户指明附加组
-N 不创建私有组作为主组,使用users组作为主组
-r 创建系统用户
-m 创建home目录
-M 不创建home目录,一般为系统用户
  1. 创建用户命令useradd的默认值
  • 默认值文件:/etc/default/useradd
[root@my_host ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
  • 更改和显示默认设置
command comments
useradd -D 显示默认配置
useradd -D -s shell 改变默认shell
useradd -D -b BASE_DIR 改变默认home目录
useradd -D -g GROUP 改变默认组
  1. 新建用户相关文件和命令
  • /etc/skel/* 用户shell的配置文件, 在用户创建时会copy到用户的home目录中
-rw-r--r--   1 root root   18 Aug  8  2019 .bash_logout
-rw-r--r--   1 root root  193 Aug  8  2019 .bash_profile
-rw-r--r--   1 root root  231 Aug  8  2019 .bashrc
  • /etc/login.defs
  • newusers passwd格式文件: 批量创建用户
  • chpasswd 批量修改用户口令
属性修改

usermod [option] user_name

command comments
-u UID 新UID
-g GID 新主组
-G GROUP1[, GROUP2, ...] 新附加组,原来的附加组将会被覆盖
-s SHELL 新的默认SHELL
-c 'comment' 新的注释信息
-d HOME 配合-m,创建新的home目录并移动原home目录数据
-l user_name 新名字
-L user lock指定用户,在/etc/shadow密码栏增加!
-U user unlock指定用户,去除/etc/shadow密码栏的!
-e YYYY-MM-DD user 指明账号过期日期
-f INACTIVE 设定非活动期限
删除用户

userdel user_name
userdel -r : 删除用户并同时删除家目录

查看用户相关的ID信息

id [OPTION] ... [USER]

options comments
-u 显示UID
-g 显示GID
-G 显示用户所属组的ID
-n 显示名称
切换用户

su [options] [-] [user]

command comment
su USerName 非登录切换,不会读取目标用户的配置文件,不改变当前工作目录
su - UserName 登录式切换,读取目标用户配置文件,切换至home目录,完全切换
su - 切换回root
设置密码

passwd [options] UserName:对指定用户设置或修改密码

options comments
-d 删除指定用户密码
-l 锁定指定用户
-u 解锁指定用户
-e 强制用户下次登录修改密码
-f 强制操作
-n mindays 指定最短使用期限
-x maxdays 最大使用期限
-w warndays 提前多少天开始警告
-i inactivedays 非活动期限
-- stdin 从非标准输入接受用户密码,echo "pass" | passwd --stdin user
修改用户密码策略

chage [options]...UserName

option comments
-d Last_DAY 设置密码更改日期
-E --expiredate EXPIRE_DATE 设置密码到期日
-I INACTIVE 非活动期限
-m MIN_DAYs 指定最短使用期限
-M MAX_DAYs 最大使用期限
-W WARN_DAYs 提前告警天数
- l 显示密码策略
用户相关的其它命令
command usage
chfn [options] [username] 设置个人信息(fullname,office,phone)
chsh [options] [username] 指定shell
finger 打印用户信息

组(groupname/GID)

分类

  1. 管理员组:root,uid:0
  2. 普通组
  • 系统组:uid:1-999
  • 普通组:uid:1000+

组配置文件

/etc/group 组及其属性信息
  1. 文件格式
  • 组名称
  • 群组密码 一般不需设定
  • GID
  • 以当前组为附加组的用户列表(分隔符为逗号)
/etc/gshadow 组密码及其相关属性
  1. 文件格式
  • 群组名称
  • 群组密码
  • 组管理员列表
  • 以当前组为附加组的用户列表
文件操作
  • vigr
  • grpck

组管理

创建组

groupadd [option]... group_name

options comments
-g GID 指定GID;[GID_MIN, GID_MAX]
-r 创建系统组
修改组

groupmod [option]... group

options comment
-n group_name 新名字
-g GID 新GID
删除组

groupdel GROUP

更改组密码

gpasswd [option] GROUP

option comment
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-M user1, user2 设置组成员
-A user1, user2,... 设置有管理权限的用户列表
更改和查看组成员

groupmems [options] [action]

  • options: -g groupname
action comment
-a username 将用户加入组
-d username 将用户从组中删除
-p 清除组中所有成员
-l 显示组成员列表,只能显示用groupmems加入的user

groups [option]...[yserbane] 查看用户所属组列表

# 创建普通用户
useradd -c "Dev ops" -s /bin/zsh -d /data/tom tom
# 创建系统用户
useradd -r -s /sbin/nologin apache

# 非交互式输入密码,用在脚本中
echo 'jane@119' > passwd --stdin tom

# 将user加入group
gpasswd -a tom devops
groupmems -g devops -a tom

linux用户和组管理主要命令.png

你可能感兴趣的:(用户和组的管理)