用户基本概述
什么是用户管理
**用户:**指的是能够正常登录Linux或windows系统
那Linux与windows系统的用户有什么区别? 本质都是登录系统的,只不过Linux支持多用户同时登录,windows默认不支持,但是修改 组策略 的情况下也是可以多用户登录的
用户的作用
登录用户
用户用来运行程序
每一个目录或者文件,都有指定的用户的权限
程序的运行用户要与程序调用的用户目录权限相同
-#官方一点:
1)系统上的每一个进程(运行的程序)都需要特定的用户运行
2)每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制
3)进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关
存放用户信息的文件:/etc/passwd
# 存放用户信息的文件
haige:x:1101:1101:dsb:/home/haige:/bin/bash (一共七列)
第一列 用户名
第二列 密码的占位符
第三列 用户的id 即UID (root是0)
第四列 用户组的id 即gid (root是0)
第五列 对用户的表述 (创建用户时用-c选项可以添加描述)
第六列 用户的家目录
第七列 用户登录的bash
存放用户密码的文件:/etc/shadow
# 存放用户密码的文件
root:$6$Fzdrl/MlvIHxuLTw$9BFVJiH4Z5PT.0ZJfXMp9NC4wxlPIeTl0hXySqPiDfTChREYD25Ab3hRuU0kiwhgWGXwbwIa4x80OW1a5k6951::0:99999:7:::
baolong:!!:19425:0:99999:7:::
第一列 用户名
第二列 加密后的密码,!!/*代表没有密码
第三列 上一次更改密码的时间,是从1970年开始算
第四列 密码最少使用天数 0代表无限
第五列 密码最长使用天数 99999代表无限
第六列 密码到期前7天提示需要修改密码
第七列 密码过期后N天强制更改密码
第八列 账户失效时间,也是从1970年开始算
第九列 为空
用户分类(规范、约束)
用户UID |
系统中约定的含义 |
0 |
超级管理员(拥有最高权限) |
1-199 |
系统用户,由系统分配给系统进程使用 |
200-999 |
系统用户,用来运行服务账户,不需要登陆系统(动态分配) |
1000+ |
常规普通用户 |
用户管理
- 增
- 删
- 改
- 查
增加用户-useradd
增加用户:useradd / adduser
-#选项及用法
-u 指定用户的uid(前提是你指定的uid不存在,否则无法创建)
useradd -u 10086 xyz
-g 指定用户的组(给用户分配到一个已存在的组)
useradd -g haige xyz (# xyz是新用户,创建成功后xyz的gid与haige的相同,uid是基于上一个用户往下递增)
-d 指定用户家目录
useradd -d /tmp/ zxc
-c 指定用户注释信息
useradd -c'for linux' mmm
-M 不创建家目录
useradd -M jkl
-s 指定用户默认shell
useradd -s /sbin/nologin mnb
-G 指定用户加入附加组
useradd -G haige,baolong zzz(新用户)(让zzz加入到这两个组里面)
## 创建用户会默认创建和用户同名的组
用户查找- id+用户名
用户查找:id + 用户名
-#方法一:
[root@localhost /home]# id xiaolv 不存在的用户
id: xiaolv: no such user
[root@localhost /home]# id xiaohei 存在的用户
uid=10096(xiaohei) gid=10096(xiaohei) groups=10096(xiaohei)
-#方法二:
cat /etc/passwd
修改用户-usermod
修改用户:usermod
# 参数的用户名是必须创建过的
-u 修改用户的uid
usermod -u 2000 xiaohei(UID可以随便一个数)
-g 修改gid (gid 组必须存在)(用户必须存在)
usermod -g 1096 xiaohei
-G 修改附加组 组必须存在
usermod -G xiaobai,mmm xiaohei
usermod xiaohei -G xiaobai,mmm
-c 修改注释信息
usermod -c 'heideyipi' xiaohei
-s 修改用户的登录shell
usermod -s /sbin/nologin xiaohei
-m 迁移家目录 要配合-d
usermod -d /opt/hei -m xiaohei
-l 修改用户的登录名
usermod -l zhenniubi(新名字) niubi(已存在)
-g 指定用户的组 组必须存在
usermod zls(用户) -g oldboyedu(组)
# 忘了他
-L 锁定用户
usermod xiaohei -L
-U 解锁用户
usermod xiaohei -U
删除用户-userdel
删除用户:userdel
-r 删除用户的同时删除用户的家目录
userdel -r xiaohei
不加选项 删除用户,并不删除家目录 (#不要用这个去删用户)
userdel xiaohong
用户密码管理
创建完账户后,默认是没有设置密码的,所以该账户是没有办法登陆操作系统。只有使用passwd设置好密码后方可登录系统。
使用passwd为用户创建密码时,为了安全起见,请尽量设置复杂一些。
可以按照如下规则设置密码:
1.密码的长度最好大于10位字符
2.密码中包含大小写字母数字以及特殊字符 ! @ # $
3.不规则性(不要出现自己名字、公司名字、自己电话、等等简单的密码)
需要注意:
1.普通用户只能更改自己的密码(密码必须满足8位字符)
2.管理员用户能更改任何人的密码(密码长度无限制)
修改用户密码-passwd
# 给当前登录用户设置密码
passwd
# 给普通用户设置密码(登录root管理员用户时)
passwd user
#注意:
# root用户设置密码可以无视密码长度
# 普通用户设置密码必须遵守8位数
# 只有root管理员才可以修该其他用户的密码,普通账户只能修改自己的密码,并且普通用户没有修改其他用户密码的权限
# 交互
类似挤牙膏,动一下挤一下
语法:passwd 用户名
# 免交互
可以免除交互,不需要一个个点
echo 密码 | passwd --stdin 用户名
# 生成密码
先安装 yum install -y expect
mkpasswd -l 10 -d 3 -c 4 -C 2 -s 1
-l 密码长度
-d 密码数字个数
-c 小写英文个数
-C 大写英文个数
-s 特殊符号
拓展
# 命令修改用户信息
chfn baolong
# 命令查询用户信息以及登陆信息
先安装 yum install -y finger
finger +用户名
# 查看终端用户
who
w
[root@web02 ~]# who
root tty1 2023-08-08 19:16
root pts/0 2023-08-08 19:16 (10.0.0.1)
[root@web02 ~]# w
21:08:30 up 1:52, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 19:16 1:52m 0.02s 0.02s -bash
root pts/0 10.0.0.1 19:16 6.00s 0.06s 0.00s w
恢复家目录
用户管理
# 用户创建流程(创建用户时会产生的流程)
#所在文件: /etc/login.defs
[root@localhost ~]# grep -Ev '^#|^$' /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
[root@localhost ~]# grep '^[A-Z]' /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
/etc/login.defs文件讲解
[root@localhost ~]# grep '^[A-Z]' /etc/login.defs(或grep -Ev '^#|^$' /etc/login.defs)
# 创建用户的时候会创建用户相关邮件所在的路径(指定创建用户时,默认邮件文件的位置 在/var/spool/mail里)(先cd /var/spool/mail 在ll 可查看用户的邮件文件)
MAIL_DIR /var/spool/mail
# 创建用户默认密码最长使用天数
PASS_MAX_DAYS 99999 (vim /etc/login.defs可修改,在创建用户useradd 用户名 ,再cat /etc/shadom即可查看修改后用户密码最长使用天数)
# 创建用户默认密码最小使用天数/etc/default/useradd
PASS_MIN_DAYS 0
# 密码最少长度
PASS_MIN_LEN 5
# 密码到期前7天会提醒
PASS_WARN_AGE 7
# 普通用户最小uid
UID_MIN 1000
# 普通用户最大uid(可大于60000)
UID_MAX 60000
# 系统用户最小uid
SYS_UID_MIN 201
# 系统用户最大uid
SYS_UID_MAX 999
# 普通用户最小gid
GID_MIN 1000
# 普通用户最大gid
GID_MAX 60000
# 系统用户最小gid
SYS_GID_MIN 201
# 系统用户最大gid
SYS_GID_MAX 999
# 默认创建家目录
CREATE_HOME yes
# umask
UMASK 077
# 创建用户的时候,同时创建该用户的同名用户组
USERGROUPS_ENAB yes
# 密码加密格式 SHA512
ENCRYPT_METHOD SHA512
/etc/default/useradd
USERGROUPS_ENAB no 的情况下才会读取/etc/default/useradd配置文件
vim /etc/default/useradd
# useradd defaults file
# 组的gid是100
GROUP=100
# 家目录的位置
HOME=/home
# 账号过期后都不会停止使用 -1=不开启
INACTIVE=-1
# 账号不过期
EXPIRE=
# 指定用户创建时的shell
SHELL=/bin/bash
# 普通用户的环境变量储存
SKEL=/etc/skel
# 创建用户时,是否创建邮件文件
CREATE_MAIL_SPOOL=yes