Linux用户增删改查

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+ 普通用户

Linux用户增删改查

/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 可以登录,但是不创建 家目录

一次性创建一百个用户
Linux用户增删改查

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

Linux用户增删改查

上一篇:redis-cli 连接远程服务器


下一篇:delphi验证码图像生成,修改自“名士:517165547”