用户分类
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:6H34Ma4oWso8TwbqC$kddAhMFdwmHro18cjsWichF8W.ElRxkaDp6IxKsc1FHWL4PYPHsxnn/j7HQeRh2lIiIeRswJClI8pmOhg/fEy0::0:99999:7:::
root:
6i48yaR6zdNIe6lj / $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: 6bfgLTjEUefb0D3xt$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 )
[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
当常识:
主目录就是家目录
信件池就是邮箱
用户登录的shell,一般是指的一个程序,而这个程序就是用户和操作系统的桥梁
如这个xshell7 里面有这几种的shell 不同的用户可能会使用不同的shell ,还可以自己修改
[root@localhost ~]# chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
一般情况下:(可以由管理员自己修改)
UID 0 root 1-999 系统用户 >999 普通用户
GID 0 root组 1-999 系统组 >999 普通用户组
su 在原来的家目录里
su - 在当前用户的家目录里