用户管理

Posted 酱油拌饭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户管理相关的知识,希望对你有一定的参考价值。

用户管理

[toc]

Linux中用户的概述

用户指的是能够正常登录Linux或windows系统

Linux与windows用户的区别支持同一个用户多个设备同时登录

                                              **支持不同的用户多个设备同时登录**

用户的作用

1。系统上的每一个进程(运行的程序)都需要特定的用户运行

2。每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制

3。进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关


查看系统中用户的命令

#命令:id
查看指定用户信息的命令: id  指定的用户名

[root@ltl ~]# id root
uid=0(root) gid=0(root) groups=0(root)

uid=0(root):用户的id号
gid=0(root):用户组的id号
groups=0(root):该用户的所有组信息

#查看运行状态的进程所属用户
ps -ef
[root@ltl ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 15:09 ?        00:00:00 /usr/lib/systemd/systemd --sw
root          2      0  0 15:09 ?        00:00:00 [kthreadd]
root          3      2  0 15:09 ?        00:00:00 [kworker/0:0]
root          4      2  0 15:09 ?        00:00:00 [kworker/0:0H]
root          5      2  0 15:09 ?        00:00:00 [kworker/u256:0]
root          6      2  0 15:09 ?        00:00:00 [ksoftirqd/0]
root          7      2  0 15:09 ?        00:00:00 [migration/0]
root          8      2  0 15:09 ?        00:00:00 [rcu_bh]
root          9      2  0 15:09 ?        00:00:00 [rcu_sched]
root         10      2  0 15:09 ?        00:00:00 [lru-add-drain]
root         11      2  0 15:09 ?        00:00:00 [watchdog/0]
root         13      2  0 15:09 ?        00:00:00 [kdevtmpfs]
root         14      2  0 15:09 ?        00:00:00 [netns]

系统用户的相关配置文件

## 用户信息配置文件
/etc/passwd
## 用户密码存储文件
/etc/shadow
## 用户组信息配置文件
/etc/group
## 用户组密码存储文件
/etc/gshadow

/etc/passwd

**用户信息配置存放文件**
[root@ltl ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
xwq:x:1000:1000::/home/xwq:/bin/bash

以:冒号为分隔符,每一组都有自己的含义,包括空位

内容 root x 0 0 root /root /bin/bash
作用 用户名 密码占位符 uid gid 描述用户信息 用户家目录位置 用户登入的shell终端

/etc/shadow

#存放用户密码相关信息的文件
[root@ltl ~]# cat /etc/shadow
root:$6$ldfv5iXBv8umC40S$DefhQrrMNW4YOeIupCi0if/tDtYB.SGHlzs7nRXyaLj1T.9yuIMZZZm093SrRL7ybIAxLPG1VMr7zfEFiJIiU1::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:19065::::::
dbus:!!:19065::::::
polkitd:!!:19065::::::
sshd:!!:19065::::::
postfix:!!:19065::::::
xwq:$6$0ZJnlV4M$VvqxQBkiT5Kd/OSc0HBvRMhziCGHiCJNJKGUO7o.gI7I3ASUZHY810SDJt4ZUgb4IM9M9Y70ovVStYhDD2Odh0:19077:0:99999:7:::

还是以:为分隔符,每组的信息判别

第一列 第二列 第三列 第四列 第五列 第六列 第七列 第八列 第九列
内容 root *!!(代表没加密的密码 (无) 0 99999 7 (无) (无) (无)
作用 用户名 正常用户密码信息是显示乱码:密码(加密) 从1970年开始上次该用户改密码的时间(天) 第四列为密码可使用的时间(有期限的密码)0为没有限制 密码最多使用时间(天) 密码过期前几天提示修改密码(我为过期前七天后提醒修改) 密码过期几天后强制修改密码(无)代表不修改 账户的过期时间(天)从1970年开始算 保留位

用户id分类(约定、规范centos7)

用户UID 系统中的含义
0 超级管理员用户
1-200 系统用户(与系统同时存在的用户,是系统自己创建)
201-999 系统用户(可手动创建的系统类用户)
1000+ 普通用户

chage命令修改用户信息,或追加

-d //设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m //设置用户两次改变密码之间使用"最小天数"
-M //设置用户两次改变密码之间使用"最大天数"
-W //设置密码更改警告时间 将过期警告天数设为“警告天数”
-I //设置密码过期天数后, 密码为失效状态
-E //设置用户过期时间, 账户失效后无法登陆
-l //显示用户信息

#该项命令使用的概率很低,稍微了解即可,都是用于设用户名 ,文件

chage -d    命令 选项 时间 目标用户名
chage -m    命令 选项 天数 目标用户名
chage -M    命令 选项 天数 目标用户名
chage -W    命令 选项 天数 目标用户名
chage -I    命令 选项 天数 目标用户名
chage -E    命令 选项 时间 目标用户名
chage -l    命令 选项 目标用户名
[root@ltl ~]# chage -l root
Last password change                    : never  #最近一次更改密码时间
Password expires                    : never      #密码过期时间
Password inactive                   : never      #密码失效时间
Account expires                     : never      #用户失效时间
Minimum number of days between password change      : 0   #密码最短使用时间
Maximum number of days between password change      : 99999  #密码最长使用时间
Number of days of warning before password expires   : 7  #密码过期前警告天数

#验证方法,调整时间来达到系统提示需求,曾导的举例
1.验证普通用户是否能修改密码, 不需要调整时间。
2.普通用户登陆系统后, 会提示警告密码还剩多少天过期
[root@zls ~]# date -s "2014-09-12"
3.普通用户登陆系统后, 强制要求修改密码
[root@zls ~]# date -s "2014-09-18"
4.普通用户登陆系统后, 提示账户已过期
[root@zls ~]# date -s "2014-09-23"

用户操作命令

用户创建

#useradd   #adduser   两个命令都可,老版本系统可能用不了adduser 
注意:创建用户在默认不指定组的情况下,会同时创建出跟该用户名相同的组,跟uid相同的gid,除非-g指定组,则不会创建同名组
## 语法
useradd [选项]... 用户名
## 选项
-u:创建用户时指定用户的uid    #  3 创建时指定三号位信息

-g:创建用户时指定用户的gid 指定用户组名(该组必须存在) # 4 创建时指定四号位信息

-G:创建用户时指定用户的附加组(该组必须存在)   # 4  创建时指定四号位信息

-c:创建用户时指定用户的描述信息    # 5 创建时指定五号位信息

-d:创建用户时指定用户的家目录(该目录可以不存在,会自动创建) # 6 创建时指定六号位信息
-m:修改用户时迁移用户的家目录,必须配合-d使用  # 6 修改六号位信息,与-d配合使用

-M:创建用户时不创建用户的家目录  # 6 创建时指定六号位信息,不要家目录

-s:创建用户时指定用户登录的shell(默认是/bin/bash) # 7 创建时指定七号位信息,修改指定登入shell
-r:创建用户时指定用户为系统用户 # 创建时指定自动补全用户信息,在201-999的UID之间,手动创建的系统用户

          1     2   3    4    5       6        7
 | 内容 | root | x | 0  | 0 | root | /root | /bin/bash |
           1         2       3      4        5              6           7
| 作用 | 用户名 | 密码占位符 | uid | gid | 描述用户信息 | 用户家目录位置 | 用户登入的shell终端 |

修改用户命令

命令:usermod
#语法
命令 选项 目标用户

# 选项
-u:修改用户时指定用户的uid
-g:修改用户时指定用户的gid 指定用户组名(该组必须存在)
-G:修改用户时指定用户的附加组,会覆盖原来的附加组(该组必须存在)
-a:修改用户附加组的时候,配合-a追加使用
-c:修改用户时指定用户的描述信息
-d:修改用户时指定用户的家目录(该目录可以不存在,会自动创建)
-M:修改用户时不创建用户的家目录
-s:修改用户时指定用户登录的shell(默认是/bin/bash)
-r:修改用户时指定用户为系统用户

#道理与创建相同,只是变成了修改

          1     2   3    4    5       6        7
 | 内容 | root | x | 0  | 0 | root | /root | /bin/bash |
           1         2       3      4        5              6           7
| 作用 | 用户名 | 密码占位符 | uid | gid | 描述用户信息 | 用户家目录位置 | 用户登入的shell终端 |

#额外选项
-l:更改用户登录名
-L:锁定用户
-U:解锁用户

#报错
## 报错
[root@localhost ~]# usermod hl3 -l hl38
usermod: user hl3 is currently used by process 70107
原因:hl3用户当前正在被PID为70107进程占用,所以无法修改

#杀进程,kill 目标id

删除用户

命令:userdel
默认情况下只删除用户,用户的相关文件不会删除
#语法
命令  选项  目标用户名
#选项
-r:递归删除,用户所有相关文件

## 举例   默认情况删除用户,家目录依然存在,可用rm -f 删除
[root@ltl ~]# userdel xxx
[root@ltl ~]# ll /home
drwx------  2 1001 1001  62 Apr  3 16:20 xxx

-r举例
[root@ltl ~]# ll /home
total 4
drwx------  2 mmm  mmm   62 Apr  3 16:22 mmm

[root@ltl ~]# userdel -r mmm
[root@ltl ~]# ll /home
total 4
drwxr-xr-x. 3 root root  19 Mar 21 11:00 oldboy
drwx------. 4 xwq  xwq  108 Mar 27 01:07 xwq
drwx------  2 1001 1001  62 Apr  3 16:20 xxx
drwxr-xr-x. 4 root root  32 Mar 21 11:00 zls

#报错
[root@ltl ~]# useradd xxx
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
#提示该用户以前创建过,没有删干净,(但是用户一样可以创建出来,且继承之前的目录)

查看用户其他命令

## 查看当前系统登录了哪些用户
[root@localhost ~]# who
#用户 #终端 #登录时间 #从哪里连接过来
root tty1 2022-03-14 16:47
root pts/0 2022-04-01 11:00 (10.0.0.1)
root pts/1 2022-03-23 12:22 (10.0.0.1)
root pts/2 2022-03-21 09:16 (10.0.0.1)
root pts/3 2022-03-23 12:22 (10.0.0.1)
hl2 pts/4 2022-04-01 11:13 (10.0.0.1)
hl38 pts/5 2022-04-01 12:00 (10.0.0.1)
## 查看当前系统登录了哪些用户
[root@localhost ~]# w
12:09:03 up 11 days, 5:20, 6 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 11:00 7.00s 0.77s 0.09s tail -f
/var/log/messages
root pts/1 10.0.0.1 23Mar22 7.00s 0.51s 0.00s w
root pts/2 10.0.0.1 21Mar22 8days 0.04s 0.04s -bash
root pts/3 10.0.0.1 23Mar22 8days 0.06s 0.06s -bash
hl2 pts/4 10.0.0.1 11:13 54:15 0.08s 0.08s -bash
hl38 pts/5 10.0.0.1 12:00 8:29 0.06s 0.06s -bash
## 查看当前登录的用户
[root@localhost ~]# whoami
root

#曾导标注的很清楚了

以上是关于用户管理的主要内容,如果未能解决你的问题,请参考以下文章

常用设备管理口默认用户名密码汇总

用户密码管理

绿盟数据库审计默认用户名密码

linux用户和用户组管理

oracle授权表备份用户管理

win10如何修改用户名