目录
Linux的用户管理
Linux
支持多个人使用同一个用户登录系统,Windows
在修改组策略的情况下,也可以多个人使用同一个用户登录
远程连接Linux的方式:SSH协议
远程连接Windows的方式:RDP协议
安卓手机(Linux系统):root 刷机,使用root用户登录系统
/etc/passwd
/etc/passwd:存放用户信息
7列,以冒号为分隔符
root:x:0:0:root:/root:/bin/bash
第一列:用户名
第二列:密码占位符
第三列:uid
第四列:gid
第五列:注释信息
第六列:家目录
第七列:登录的shell
uid | 系统分类 |
---|---|
0 | 超级用户 |
1-200 | 系统用户,系统自己创建的 |
201-999 | 系统用户,不能登录系统 |
1000+ | 普通用户 |
/etc/shadow
/etc/shadow:存放用户密码
9列,以冒号为分隔符
zls:!!:18351:0:99999:7:2:183519998:
第一列:用户名
第二列:用户密码(!! 和 * 都是没有密码)
第三列:上一次该用户修改密码的时间(从1970年开始计算到上一次修改的天数)
第四列:密码最短使用的天数
第五列:密码最长使用天数
第六列:密码快过期,7天之前,会提示修改密码
第七列:密码过期后两天提示强制修改密码。否则无法登陆
第八列:账户的失效时间,从1970年开始计算
第九列:保留
/etc/group
# 如何查看组信息?这个组是否被创建
[root@localhost ~]# cat /etc/group
# 创建一个用户,会影响几个文件?
4个文件:
1./etc/passwd :存放用户信息
2./etc/shadow :存放密码信息
3./etc/group :存放用户组信息
4./etc/gshadow :存放组密码信息
当使用 `useradd zls` 创建用户时,会影响以上4个文件
# 如何查看当前登录用户信息?
id
# 如何查看当前登录用户的uid?
id -u
# 如何查看gid
id -g
# 如何查看组?
id -G
useradd创建用户
useradd zls -u 666 -g 666
创建一个系统 用户,用来管理进程
创建用户时:-g 指定 gid,一定是存在的组
-u:指定uid 从 1000开始
-g:指定gid 从 1000开始
-G:指定附加组
-M:不创建家目录 默认 创建家目录
-c:添加注释
-s:指定登录的shell /sbin/nologin /bin/bash
-d:指定家目录 /home
-r:创建uid为201-999的系统 用户, useradd zls -r 可以登录,但是不创建 家目录
一次性创建一百个用户
userdel删除用户
userdel
-r:删除和该用户一切 有关的文件
usermod修改用户
usermod
-u:指定uid 从 1000开始
-g:指定gid 从 1000开始
-G:指定附加组
-M:不创建家目录 默认 创建家目录
-c:添加注释
-s:指定登录的shell /sbin/nologin /bin/bash
-d:指定家目录 /home
-m:配合-d使用,迁移家目录
-r:创建uid为201-999的系统 用户, useradd zls -r 可以登录,但是不创建 家目录
-U:解锁用户
-l:更改用户名
-L:锁定用户
-a:配合-G使用,追加附加组
组的基本管理
##
```bash
[root@localhost ~]# ll /etc/group
-rw-r--r-- 1 root root 12120 4月 1 10:11 /etc/group
[root@localhost ~]# tail -2 /etc/group
hfls49:x:1779:
hfls50:x:1780:
第一列:组名
第二列:密码占位符(组密码存在gshadow)
第三列:gid
第四列:组的附加成员,基本成员不显示。
[root@localhost ~]# ll /etc/gshadow
---------- 1 root root 8902 4月 1 10:11 /etc/gshadow
[root@localhost ~]# tail -2 /etc/gshadow
hfls49:!::
hfls50:!::
第一列:组名
第二列:组密码(!! 表示没有密码)
第三列:组管理员
第四列:组的附加成员,基本成员不显示
## 创建组命令:groupadd
[root@localhost ~]# groupadd z1s
[root@localhost ~]# groupadd z1s -g 6666
# 创建gid范围是201-999之间的系统组
[root@localhost ~]# groupadd -r z1s
## 修改组命令:groupmod
[root@localhost ~]# groupmod z1s -g 6666
# 修改组名
[root@localhost ~]# groupmod z1s -n z1s01
## 删除组命令:groupdel
[root@localhost ~]# groupdel z1s01
## 用户的其他修改命令(了解)
```bash
yum install -y finger
# chfn
[root@localhost ~]# chfn zls_qwe
Changing finger information for zls_qwe.
办公电话 []: 12345678911
住宅电话 []: 1234567
Finger information changed.
# finger
[root@localhost ~]# finger zls_qwe
Login: zls_qwe Name: 曾老湿
Directory: /home/zls_qwe5 Shell: /bin/bash
Office: 十维, +1-234-567-8911 Home Phone: 123-4567
Last login 二 3月 31 09:52 (CST) on pts/0
No mail.
No Plan.
# chsh
[root@localhost ~]# chsh zls_qwe
Changing shell for zls_qwe.
New shell [/bin/bash]: /sbin/nologin
Shell changed.
# 查看用户的登录情况(稍微重要)
# who 当前有几个用户连接了我的服务器
[root@localhost ~]# who
登录的用户名 连接的终端 连接的时间 客户端IP
root pts/0 2020-03-31 09:00 (10.0.0.1)
root pts/1 2020-03-31 10:15 (10.0.0.1)
# whoami 查看当前登录的用户
[root@localhost ~]# whoami
root
[zls111@localhost ~]$ whoami
zls111
# w
[root@localhost ~]# w
10:33:54 up 1 day, 13:39, 4 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 10:33 2.00s 0.00s 0.00s w
root pts/2 10.0.0.1 10:27 6:08 0.00s 0.00s -bash
root pts/3 10.0.0.1 10:28 1:30 0.00s 0.00s -bash
root pts/4 10.0.0.1 10:28 4:58 0.00s 0.00s -bash
用户的扩展知识
#创建用户指定id,家目录,密码等信息由两个文件所控制,分别是以下/etc/login.defs,/etc/default/useradd
[root@localhost ~]# cat /etc/login.defs
[root@localhost ~]# grep -i ‘^[a-z]‘ /etc/login.defs
# 指定创建用户后的邮件文件存放位置
MAIL_DIR /var/spool/mail
# 密码,最长天数
PASS_MAX_DAYS 99999
# 密码最小天数
PASS_MIN_DAYS 0
# 密码最小长度
PASS_MIN_LEN 5
# 密码过期前7天 ,提示,密码要过期了,给老子改
PASS_WARN_AGE 7
# 普通用户的uid 最小值1000
UID_MIN 1000
# 普通用户的最大uid 60000
UID_MAX 60000
# -r创建的系统用户,201 - 999
SYS_UID_MIN 201
SYS_UID_MAX 999
# 普通用户组的最小gid
GID_MIN 1000
# 普通用户组的最大gid
GID_MAX 60000
# -r创建的系统用户组,201 - 999
SYS_GID_MIN 201
SYS_GID_MAX 999
# 默认创建家目录
CREATE_HOME yes
# 家目录umask
UMASK 077
0777 0777
- 0022 0077
------- ------
0755 0700
# 在删除用户的时候,是否捆绑,把用户组也删除
USERGROUPS_ENAB yes
# 用户密码加密算法
ENCRYPT_METHOD SHA512
[root@localhost ~]# ll /etc/default/useradd
-rw-r--r-- 1 root root 119 11月 5 2016 /etc/default/useradd
[root@localhost ~]# cat /etc/default/useradd
# 依赖于/etc/login.defs的USERGRUUPS_ENAB参数,如果为no,则在此处控制
GROUP=100
# 默认普通用户的家目录
HOME=/home
# 是否启用账号过期停权,-1表示不启用
INACTIVE=-1
# 账号终止日期(没有设置)
EXPIRE=
# 创建用户的默认shell
SHELL=/bin/bash
# 当用户,误删除了自己家目录下的环境变量。
SKEL=/etc/skel
-bash-4.2$ cp /etc/skel/.bash* ~/
# 创建用户的同时,是否创建邮件文件
CREATE_MAIL_SPOOL=yes
用户的密码管理
# 创建密码的规范
1.密码的长度最好大于10位字符
2.密码中包含大小写字母数字以及特殊字符 ! @ # $
3.不规则性(不要出现自己名字、公司名字、自己电话、等等简单的密码)
[root@localhost ~]# passwd --help
用法: passwd [选项...] <帐号名称>
# 直接输入passwd,更改当前登录用户的密码
[root@localhost ~]# passwd
# passwd + 用户名,给指定用户设置密码
[root@localhost ~]# passwd zls000
# 使用非交互的方式设置密码给指定用户
[root@localhost ~]# echo ‘123‘ | passwd --stdin zls000
# md5sum,加密。并且做校验
# 密码管理命令
yum install -y expect
//2.mkpasswd密码生成工具, -l设定密码长度,-d数子,-c小写字母,-C大写字母,-s特殊字符
[root@zls ~]# yum install -y expect //需要安装扩展包
[root@zls ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4
|K&13bR)i/
# 使用 三种方式,创建出来100个 用户,并且设置100个随机密码,并且记录密码,都可以登录
格式:username:password