#
用户分类
root
用户:超级管理员,拥有最高权限
uid
=
0
普通用户:
>
=
1000
系统用户:
1
-999
权限:一般情况下 root>普通>系统
#
组分类
基本组:一个用户有且仅有一个基本组,
用户一定有基本组
先天 只有一个
附加组:一个用户可以有多个附加组,用户可以没有附加组 后天 可以有多个
#
用户账户信息的配置文件 /etc/passwd
/ etc/passwd 存储用户账户信息的位置
root :x: 0: 0: root: /root: /bin/bash
用户名称:密码占位符:
UID
:基本组:描述信息:家目录:用户登录的
shell
UID: 类似于身份证号(用户)
#
用户账户密码相关信息的配置文件
/etc/shadow(下面是描述每个字段所表达的内容)
root:$6$H34Ma4oWso8TwbqC$kddAhMFdwmHro18cjsWichF8W.ElRxkaDp6IxKsc1FHWL4PYPHsxnn/j7HQeRh2lIiIeRswJClI8pmOhg/fEy0::0:99999:7:::
root:
$6$i48yaR6zdNIe6lj
/
$g6ezD0QwdidSZ3toEeqo6i
/Kvsh33P36PXUKuAzzm1D7TeFbrnycopUuXPll V9vOr/Vpjj4QA.2q5obHTHEET/:
空:
0:
99999:
7:
空:
空:
空
用户名称:
加密后的密码:
密码的创建时间(从1970年1月1日开始算)
:
至少在多少天后才能改密码:
到了这一天
必须改密码(否则密码失效):
提前七天提醒改密码:
宽限天数:
密码失效时间(从1970
年
1
月
1
日开始算):
标志
加密后的密码是通过特定的算法得出的结论,且不能被倒推,所以我们一般都找不回自己忘记的密码,都是直接重置密码,当然这样也保证了我们账户密码的安全性,不会被别人获取。
最小时间间隔 0 表示不限制 密码多少天不能被修改
最大时间间隔 999999 表示不进行限制 密码多少天必须被修改
警告时间 0 表示不提供警告 提前多少天警告用户密码即将过期
一般默认是7天
对于这些时间天数,可以通过vim进入相应的文件位置 vim /etc/shadow 进行修改

#
组账户信息配置文件
/etc/group
root :x: 0 : 空
tss :x: 59 : clevis
组名:组密码占位符:
GID
组账号:以该组为附加组的用户
#
组密码配置文件
/etc/gshadow
root: 空 : 空: 空
tss: ! :空: clevis
组名:组密码:组管理员:以该组为附加组的用户
!代表没有设置密码
失效期 没写或0都是代表永久保存(目前学的是这样,或者表示默认值)
内容了解即可:
#useradd
创建用户的默认项
[root@localhost ~]# vim /etc/default/useradd
INACTIVE=-1 这行设置新用户是否会被禁用。在这里,-1
表示新用户账户默认不会被禁用。如果设置为正整数,比如30
,那么新用户在30天后如果没有更改密码,将被系统禁用。
EXPIRE= 是否设置密码过期时间 在这里,它为空默认不过期
SHELL=/bin/bash shell
SKEL=/etc/skel 这行指定新用户主目录的模板目录。当你创建一个新用户时,/etc/skel
目录下的所有文件和目录都会被复制到新用户的主目录下。
CREATE_MAIL_SPOOL=yes 这行指示系统是否为新用户创建邮件池。
~
当使用useradd命令添加新用户时,这个文件中的设置会被用作新用户的默认配置。
而我们可以进入这个里面定义新建用户的默认信息
一般包括,家目录的路径,,新用户的基本组,UID,,等
#
定义
/etc/passwd
和
/etc/shadow
配置文件
[root@localhost ~]
# vim /etc/login.defs
默认信息一般包括 UID和GID的范围,密码最长使用期,密码修改间隔,密码最小长度,是否创建家目录等
#
家目录的隐藏文件从这个目录里复制的
[root@localhost ~]
# ll -A /etc/skel/
总用量
12
-rw-r--r--
.
1
root root
18 11
月
24 2022
.bash_logout
-rw-r--r--
.
1
root root
141 11
月
24 2022
.bash_profile
-rw-r--r--
.
1
root root
492 11
月
24 2022
.bashrc
drwxr-xr-x.
4
root root
39 3
月
28 16
:12 .mozilla
1
、用户
创建
useradd
useradd [选项] 登录名
[root@localhost ~]
# grep wang5 /etc/passwd /etc/shadow
/etc/passwd:wang5:x:1010:1010:wang5dezhanghao:/wang5:/bin/bash
/etc/shadow:wang5:
$6$bfgLTjEUefb0D3xt$A04j5RSBApYtUxJsXIFnbGZvdMMDOKhGhxL6L0EmabX0Pc
.
v0GzzonpNeKQUa5WO98E3RreqnBVDMARdCMWrn/:19828:0:99999:7:::
[root@localhost ~]
# useradd wang5 -u 1010 -g 1010 -d /wang5 -s /bin/bash -c wang5dezhanghao
-u 指定账户的UID创建用户
-g 指定用户的组ID创建用户
#
注意:你
-g
指定的组,要先存在
-d 用户的家目录
-M 不创建用户的家目录
-s 指定创建用户登录时的shell
-c 用户的注释信息
-e 设置用户的失效日期
useradd wang5 -e 2024-5-7
-N 不创建同名组,默认到user组(基本组)里
-p 设置密码
#
注意:你
-g
指定的组,要先存在
[root@localhost ~]
# groupadd -g 1010 wang5
[root@localhost ~]
# useradd wang55 -u 1005 -s /bin/bash -e -1
[root@localhost ~]
# useradd admin -d /admin -g wheel -G admin,root
示例
1
:新建一个用户
zhang3,
查看
passwd
、
shadow
文件中的变化
,
并确认该用户的家目录中的初始配置文件。
示例
2
:新建一个用户
wang5
,指定其
UID
为
1005
、登录
Shell
为
/bin/bash
,账号永不过期。
示例
3
:新建一个辅助管理员用户
admin,
将其用户家目录指定为
/admin
,基本组指定为
wheel
,附加组同时属于
adm
组和
root
组
示例
4
:新建一个用于访问
FTP
的
zhao6
用户,禁止其登录且不创建家目录。
指定不能登录的shell
删
userdel
-r
用户名
因为不加-r 删不掉邮箱,所以一般将-r带上
-r
,
--remove
删除主目录和信件池
、
[root@localhost ~]
# userdel wujing -r
#
验证
[root@localhost ~]
# ll /var/spool/mail/
[root@localhost ~]
# ll /home
/var/spool/mail 邮箱信息
改
usermod
[root@localhost ~]
# usermod -G dongyouji wuneng
好像是不能同时将多个用户改到同一个附加组里,至少以逗号隔开是不可以的,会被认为是一个用户
[root@localhost ~]
# grep dongyouji /etc/group
dongyouji:x:1023:wukong,wujing,wuneng
#
修改设置账户密码
passwd
#
对
redhat
用户设置密码为
123
echo
123
| passwd
--stdin
redhat
#
只有
root
用户执行
passwd
指令时可以带用户名
passwd
用户名称
#
普通用户只能不带参数,修改自己的密码
-d 修改家目录
-u 修改用户的UID
示例
1
:将用户
admin
的家目录移至
/home
目录下。
示例
2
:将用户
wang5
的名称修改为
wangwu,
并暂停使用该账号。
查
id +
用户名称
[root@localhost ~]
# id wukong
用
户
id
=
1022
(wukong)
组
id
=
1024
(wukong)
组
=
1024
(wukong),1023(dongyouji)
用户基本组
id
用户所属的所有组
vim /etc/passwd 查看所有的用户和一些信息:
例如:polkitd:x:998:996:User for polkitd:/:/sbin/nologin
- 用户名为
polkitd
。 - 密码信息隐藏,指向
/etc/shadow
文件。 - 用户ID为
998
。 - 用户组ID为
996
。 - 用户描述为
User for polkitd
。 - 主目录为根目录
/
。 - 默认shell为
/sbin/nologin
,表示该用户不能登录。
补充:
passwd: 为用户账号设置密码
-d +用户 删除密码
没有密码的不能进行远程登录,只能在虚拟机本机上登录
-e 就是将设置的密码立即过期(终止让其失效)
-i +参数 修改宽限天数(就是口令过期后停用账户的天数)
-l (=usermod -L ) 将用户账号锁定 锁定是将带密码的账户锁定到不能登录(密码账户被锁定)也就是密码失效,不能登录。
-n 修改 密码多少天后才能被修改
--stdin表示要以像前面标准输入的方式才能进行命令
echo 123 | passwd --stdin root
将123设置为root账户的密码
123 和root 都可以作为变量,进行循环,进而达到多次修改不同用户密码的功能
普通用户的密码一定要是8位以上的字符吗?,,那root用户呢?
--stdin 从标准输入读取令牌(只有 root
用户才能进行此操作)
用户才能进行此操作)
sudo 提高普通用户的权限
sudo -u root useradd 用户
让普通用户使用root用户创建用户的权限
搜文件在哪:
find / -name sudoer
用户的提权:下面有,改过去
vim /etc/sudoers
搜看看是啥,在里面改了东西
进入这个里面把用户的权限改了?
在有个路径上前面加个passwd 可以在使用 下面sudo 的时候不用输密码了 看平板的截屏
dd 删行
对附加组通一做一个指令
%dongyouji ALL=(ALL) ALL
在附加组dongyouji里的所有用户在任何主机上,可以切换到任何用户,执行任何指令
which useradd 查看看
id +用户 查看用户信息
先是基本组 后面是附加组
sudo -u root useradd baidujing 给后面这个用户加上root有的添加用户的权限?
2
、组
创建
groupadd
#
默认创建普通的组
[root@localhost ~]
# groupadd dongyouji GID和系统组不一样
[root@localhost ~]
# grep dongyouji /etc/group
dongyouji:x:1002:
-g 组名 gid 是 最大id+一
id 是已存在的组的id
10086 用户 指定用户的GID为10086
有点怪怪的,好好查看看
#
创建系统组
-r 创建一个系统组的账号 分配一个GID 范围在1-999
[root@localhost ~]
# groupadd -r dongyouji01
[root@localhost ~]
# grep dongyouji /etc/group
dongyouji:x:1002:
dongyouji01:x:977:
#
指定组
id
创建组
[root@localhost ~]
# groupadd -g 10086 newgroup
[root@localhost ~]
# grep newgroup /etc/group
newgroup:x:10086:
groupadd -g 1000 group1 修改组的组ID(GID)
-o 加一个-o 允许使用同一个GID
删
groupdel 不能删除用户的主组,也就是基本组
#
注意:删除的组不能作为一个用户的基本组,否则不能删除该组
[root@localhost ~]
# groupdel newgroup2
[root@localhost ~]
# grep newgroup2 /etc/group
被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组
改
groupmod
groupmod [选项] 组
#
修改组名和修改组
id
[root@localhost ~]
# groupmod -n newgroup2 -g 1012 newgroup1 同时修改的名字和组id
[root@localhost ~]
# grep newgroup2 /etc/group
newgroup2:x:1012:
#
新增
tangseng
为
dongyouji
组的管理员,
wuneng
为组成员(
覆盖
之前的用户)
[root@localhost ~]
# gpasswd -A tangseng -M wuneng dongyouji
[root@localhost ~]
# grep dongyouji /etc/gshadow
dongyouji:!:tangseng:wuneng
dongyouji01:!::
#-M
可指定多个用户到组里
[root@localhost ~]
# gpasswd -M wuneng,wujing,wukong dongyouji
#
不覆盖追加用户到组里
[root@localhost ~]
# gpasswd -a redhat dongyouji
正在将用户
“redhat”
加入到
“dongyouji”
组中
#修改组id
groupmod -g 1010 group
查
groups
用户名称 查看用户的所属组
gpasswd 选项 用户 组
-a 添加用户
-d 从对应的组中的用户进行删除
-M 设置组 GROUP 的成员列表,用户用多个用逗号隔开
vim /etc/group 查看有哪些基本组
root:x:0:
- 组名:用户组的名称。
- 密码:通常为空或
x
,表示密码信息存储在/etc/gshadow
文件中(如果系统使用该文件)。 - 组ID (GID):系统用来识别用户组的数字标识。
- 组成员:属于该组的用户列表,多个用户之间用逗号分隔。
3
、用户的提权 (提升用户的权限)
#
配置
vim
/etc/sudoers
进入这个文件
写入命令
tangseng
ALL
=
(root) NOPASSWD:!/usr/sbin/useradd
这行配置允许用户
tangseng
无需输入密码即可执行
/usr/sbin/useradd
命令,但仅限于以 root 用户身份执行。(这里的ALL代表在所有的主机和终端上)
%dongyouji
ALL
=
(ALL) ALL,!/usr/bin/rm
这行配置允许
dongyouji
用户组的所有成员以所有用户(ALL)的身份执行所有命令(ALL),但除了
/usr/bin/rm
命令。(这里的第一个ALL 是指改组下的所有用户)。
上面的%是为了区分用户和组
#
验证
su
-
tangseng
#
注意:只有
root
用户有权限使用
useradd
创建用户,普通用户想要使用
useradd
需要使用
sudo
临时获得
useradd
的执行权限
sudo
-u
root useradd
4
、查看用户登录情况(w who last )
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 08:50 47:33 0.01s 0.01s -bash
root pts/1 08:50 1.00s 0.03s 0.01s w
root pts/2 08:50 30:41 0.02s 0.02s -bash
[root@localhost ~]
# w
显示登录到系统的用户信息。
14
:45:11 up
46
min,
3
users, load average:
0
.00,
0
.00,
0
.00
到这个点 启动了多久 有三个用户在线 负载均衡
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root seat0
13
:59
0
.00s
0
.00s
0
.01s /usr/libexec/gdm-wayland-session
--
register-session
root tty2
13
:59
46
:01
0
.07s
0
.06s /usr/libexec/gnome-session-binary
09:37:45 up 47 min, 3 users, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 08:50 47:33 0.01s 0.01s -bash
root pts/1 08:50 1.00s 0.03s 0.01s w
root pts/2 08:50 30:41 0.02s 0.02s -bash
root pts/0
14
:00
1
.00s
0
.37s
0
.02s w
登录的时间 空闲时间 占用cpu的时间 后面what的指令占用的时间
[root@localhost ~]
# who
显示目前登录到系统的用户
root seat0
2024
-04-20
13
:59 (login screen)
root tty2
2024
-04-20
13
:59 (tty2)
root pts/0
2024
-04-20
14
:00 (192.168.78.1)
[root@localhost ~]
# last
列出目前与过去登入系统的用户相关信息,
root pts/0
192
.168.78.1 Sat Apr
20 14
:00 still logged
in
root tty2 tty2 Sat Apr
20 13
:59 still logged
in
root seat0 login screen Sat Apr
20 13
:59 still logged
in
reboot system boot
5
.14.0-362.8.1.e Sat Apr
20 13
:59 still running
root pts/2
192
.168.78.1 Sat Apr
20 10
:47
-
12
:02 (01:15)
root pts/1
192
.168.78.1 Sat Apr
20 10
:06
-
12
:02 (01:55)
root pts/1
192
.168.78.1 Sat Apr
20 09
:22
-
10
:05 (00:43)
[root@localhost ~]
# lastlog
每个账号(用户)的最近登录时间
Username Port From Latest
root pts/0
192
.168.78.1
六
4
月
20 14
:00:11
+
0800 2024
bin **
从未登录过
**
daemon **
从未登录过
**
adm **
从未登录过
**
lp **
从未登录过
**
gdm tty1
六
4
月
20 13
:59:30
+
0800 2024
redhat pts/1
六
4
月
20 10
:53:43
+
0800 2024
wukong pts/1
六
4
月
20 10
:31:10
+
0800 2024
用什么登录的 来自的IP地址 登录时间
Username Port From Latest
root pts/2 192.168.113.1 五 5月 10 08:50:37 +0800 2024
root pts/2 192.168.113.1 五 5月 10 08:50:37 +0800 2024
当常识:
主目录就是家目录
信件池就是邮箱
用户登录的shell,一般是指的一个程序,而这个程序就是用户和操作系统的桥梁

如这个xshell7 里面有这几种的shell 不同的用户可能会使用不同的shell ,还可以自己修改
[root@localhost ~]# chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
一般情况下:(可以由管理员自己修改)
UID 0 root 1-999 系统用户 >999 普通用户
GID 0 root组 1-999 系统组 >999 普通用户组
su 在原来的家目录里
su - 在当前用户的家目录里