第八章用户与组的管理(视频)

# 用户分类
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   进行修改 
uu
                                              
# 组账户信息配置文件 /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:
  1. 组名:用户组的名称。
  2. 密码:通常为空或 x,表示密码信息存储在 /etc/gshadow 文件中(如果系统使用该文件)。
  3. 组ID (GID):系统用来识别用户组的数字标识。
  4. 组成员:属于该组的用户列表,多个用户之间用逗号分隔。
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 -             在当前用户的家目录里
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值