Linux用户管理

用户管理

基本概述

用户,又称使用者,是指使用电脑或网络服务的人,通常拥有一个用户账号,并以用户名识别。
正常登录Linux或Windows系统,本质都是登陆系统,但是Linux支持同一时间多个用户同时登陆windows默认不支持,但是修改组策略的情况下也是可以多用户登录的。

Linux下的用户的作用

  1. 系统上的每一个进程(运行的程序),都需要一个特定的用户运行
  2. 通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。
  3. 每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制
  4. 进程能够以何种方式访问某一个文件或目录,与进程所关联的用户有关

查看系统中所存在的用户

1.查看当前登录的用户信息

[root@localhost ~]# id	   #查看当前登录用户信息
uid=0(root)       gid=0(root)       groups=0(root) 
UserID:用户id号|GroupID:用户组ID号|该用户的所有组信息

2.每一个进程都会由一个用户身份运行

[root@localhost ~]# ps aux|less 	#下面结果的第一列就是用户名称
root      33782  0.0  0.0      0     0 ?        R    02:46   0:00 [kworker/u256:0]
root      35637  0.0  0.0      0     0 ?        R    05:11   0:03 [kworker/0:2]

系统用户相关的配置文件

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

Linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息,但没有密码信息,密码被存放在/etc/shadow中。

1./etc/passwd 配置文件解释如下图

2./etc/shadow 配置文件解释如下图

用户分类(约定、规范CentOS7)

用户UID 系统中含义
0 超级管理员用户
1-200 系统用户,用来运行系统自带的进程,默认已创建
201~999 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统
1000+ 普通用户,正常可以登陆系统的用户权限比较小能执行的任务有限

chage命令修改用户信息

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

-d 设置最近一次更改密码时间, 0下次登陆系统强制修改密码

-m:设置用户两次改变密码之间使用的最小天数

-M :设置用户两次改变密码之间使用最大天数

-W:设置密码更改警告天数,将过期天数设为警告天数

-I:设置密码过期天数后密码为失效状态

-E:设置用户过期时间,账户失效后无法登录

-l:显示用户信息

用户操作命令

用户创建

useradd adduser

注意:创建用户在默认不指定组的情况下,会同时创建出跟该用户名相同的组,跟uid相同的gid,除非-g指定组,则不会创建同名组

## 语法
useradd [选项]... 用户名

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

创建用户

[root@localhost ~]# useradd lw

-u -g创建用户时指定用户的gid 指定用户组名(该组必须存在)

[root@localhost ~]# useradd lw1 -u 666 -g root
[root@localhost ~]# id lw1uid=666(zls1) gid=0(root) groups=0(root)

-G:创建用户时指定用户的附加组(该组必须存在)

[root@localhost ~]# useradd lw -G root,zhujiao
[root@localhost ~]# id lw
uid=1001(lw) gid=1001(lw) groups=1001(lw),0(root),1000(zhujiao)[root@localhost ~]# useradd lw1 -g zhujiao
[root@localhost ~]# id lw1
uid=1002(lw1) gid=1000(zhujiao) groups=1000(zhujiao

修改用户

usermod  modify
## 语法
usermod [选项] 用户名

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

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

删除用户

userdel   delete
注意:删除用户,默认情况下,只删除用户本身,其他相关目录文件不会删除

## 语法
userdel [选项]... 用户名

## 选项
-r:递归删除,用户所有相关文件

## 警告
[root@localhost ~]# useradd test
useradd: warning: the home directory already exists.Not copying any file from skel directory into it.Creating mailbox file: File exists

原因:创建用户时,该用户以前创建过,但是在删除时没有加-r选项,没有删干净(用户同样可以创建出来)

记录:useradd mysql -s /sbin/nologin -M

查看用户其他命令

## 查看当前系统登录了哪些用户
[root@localhost ~]# who
#用户   #终端#登录时间        #从哪里连接过来
root     tty1         2022-03-1416:47
root     pts/0        2022-04-0111:00 (10.0.0.1)
root     pts/1        2022-03-2312:22 (10.0.0.1)
root     pts/2        2022-03-2109:16 (10.0.0.1)
root     pts/3        2022-03-2312:22 (10.0.0.1)
lw       pts/4        2022-04-0111:13 (10.0.0.1)
lw2      pts/5        2022-04-0112: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
lw      pts/4    10.0.0.1         11:13   54:15   0.08s  0.08s -bash
lw2     pts/5    10.0.0.1         12:00    8:29   0.06s  0.06s  -bash
## 查看当前登录的用户
[root@localhost ~]# whoami
root
posted @ 2022-04-03 20:29  Gie  阅读(165)  评论(0编辑  收藏  举报