RHCSA学习--用户和组的管理

目录

Linux用户分类

超级用户

系统用户(伪用户)

普通用户

Linux组的分类

基本组(私有组)

附加组(公有组)

Linux中用户和用户组的配置文件

用户账号文件——/etc/passwd

文件中字段说明

用户密码文件——/etc/shadow

文件中字段说明

用户组账号文件——/etc/group

文件中字段说明

用户组账号文件——/etc/gshadow

文件中字段说明

用户管理

添加新用户--useradd 命令

修改用户信息--usermod命令

为用户账号设置密码--passwd命令

删除用户账号——userdel命令

用户间的切换——su命令

用户身份提权——sudo命令

sudo的执行流程

用到sudo场景

sudo如何使用

sudo配置

sudo命令执行时的选项

用户组管理

创建用户组

修改用户组属性

添加/删除组成员

删除组账户

查询用户和组信息

显示用户信息

显示组信息 

查看用户登录系统的情况 

查看当前登录系统的用户

列出目前与过去登入系统的用户相关信息

 查看目前登陆用户

手动添加一个用户

与用户和组操作有关的例子


Linux用户分类

超级用户

用户名为 root ,它具有一切权限,只有进行系统维护 ( 例如:建立用户等 ) 或其他必要
情形下才用超级用户登录,以避免系统出现安全问题。

系统用户(伪用户)

Linux 系统正常工作所必需的用户。主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin daemon adm lp 等用户。系统用户不能用来登录。

普通用户

是为了让使用者能够使用 Linux 系统资源而建立的,我们的大多数用户属于此类。

Linux组的分类

基本组(私有组)

建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组。一个用户只有一个基本组。

附加组(公有组)

可以容纳多个用户,组中的用户都具有组所拥有的权利。一个用户可以属于多个附加组。

Linux中用户和用户组的配置文件

Linux 中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。
功能 文件名称
用户账号文件
/etc/passwd
用户密码文件
/etc/shadow
用户组账号文件
/etc/group
用户组密码文件
/etc/gshadow

其中密码是会加密的

用户账号文件——/etc/passwd

查看该文件第一行

[root@Test test]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash

文件中字段说明

账号名称
用户登录 Linux 系统时使用的名称。
密码
以前是以加密格式保存密码的位置,现在密码保存在 /etc/shadow 文件中,此处只是密码占位符“x” “*” 。若为 “x” ,说明密码经过了 shadow 的保护。
UID
用户的标识,是一个数值,用它来区分不同的用户,每个用户都有一个 UID 数值:
超级用户的 UID——0
系统用户的 UID——1 999
普通用户的 UID—— 1000
GID
用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的 GID
个人资料
可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。
主目录
类似 Windows 的个人目录,通常是 /home/username ,这里 username 是用户名,用户执行“cd 命令时当前目录会切换到个人主目录。
Shell
定义用户登录后激活的 Shell ,默认是 Bash Shell

用户密码文件——/etc/shadow

查看该文件第一行

[root@Test test]# head -1 /etc/shadow
root:$6$6yd4eaZoTlDTUdHo$NeSXL541nAOOyfsgl5dAPPOzAgpPp6IUbDmBoxxRZ2FXaiIa9TlFRKkZtPbvKo/JsBsYTGMnb/5BpTVVphk7S.::0:99999:7:::

文件中字段说明

登录名
登录名
加密口令
使用 SHA-512/SHA-256/MD5 算法加密后的密码( $id$ id 1 表示 md5, 5 表示sha256, 6 sha512 ),若为空,表示该用户无需密码即可登录,若为 “*” 表示该账号不能用于登录系统,若为“ !! 表示该账号密码已被锁定
最后一次修改时间
最近一次更改密码的日期 , 以距离 1970 1 1 日的天数表示
最小时间间
密码在多少天内不能被修改。默认值为 0, 表示不限制
最大时间间隔
密码在多少天后必须被修改。默认值为 99999, 表示不进行限制
警告时间
提前多少天警告用户密码将过期 , 默认值为 7 ,0 表示不提供警告
不活动时间
密码过期多少天后禁用此用户
失效时间
密码失效日期 , 以距离 1970 1 1 日的天数表示 , 默认为空 , 表示永久可用
标志
保留未用,以便以后发展之用

用户组账号文件——/etc/group

[root@Test test]# head -1 /etc/group
root:x:0:

文件中字段说明

Groupname
组的名字
Passwd
组的加密口令
GID
是系统区分不同组的 ID ,在 /etc/passwd 域中的 GID 字段是用这个数来指定用户的
基本组
Userlist
是用 分开的用户名,列出的成员以该组为附加组

用户组账号文件——/etc/gshadow

[root@Test test]# head -1 /etc/gshadow
root:::

文件中字段说明

组名
第一个字段是这个用户的组名。
组密码
第二个字段就是实际加密的组密码。大家已经注意到,对于大多数用户来说,这个字符安不是空就是“!”,代表这个组没有合法的组密码。
组管理员用户名
第三个字段表示这个组的管理员是哪个用户。
组中的附加用户
第四个字段用于显示这个用户组中有哪些附加用户

用户管理

添加新用户--useradd 命令

格式

useradd 选项 用户名

常用选项
-c 注释信息 —— 设定与用户相关的说明信息 ( , 真实姓名、邮箱地址等 )。
-d 目录 —— 设定用户的家目录 ( 默认为 /home/ 用户名 )。
-e YYYY-MM-DD—— 设置用户的失效日期 ,此日期后将不能使用该账号。
-f 天数 —— 指定密码到期后多少天账号被禁用 , 若指定为 0, 则表示账号到期后被立即禁用 ; 若指定 为-1, 则表示账号过期后不被禁用 ( 即密码永不过期 )。
-g 组名或 GID —— 为用户指定所属的基本组 ,该组在指定时必须已存在。
-G 组名或 GID 号列表 —— 为用户指定所属的附加组 , 各组在指定时已存在 , 附加组可以有多个 , 组 之间用“,”分隔。
-M ——不创建用户家目录。
-N ——不创建与用户名同名的基本组。
-p 密码 ——指定用户的登录密码。
-s shell —— 指定用户登录后使用的 Shell, 默认是 bash。
-u 用户号 —— 设置账号的 UID, 默认是已有用户的最大 UID 1 。如果同时有 -o 选项 ,则可以重复使用其他用户的标识号

修改用户信息--usermod命令

格式

usermod 选项 用户名
常用的选项包括 -c,-d,-m,-g,-G,-s,-u 等,这些选项的意义与useradd命令中的选项一样,可以为用
户指定新的资源值。另外,还可以使用如下选项:
-l 新用户名——更改账户的名称,必须在该用户未登录的情况下才能使用。
-L——锁定(暂停)用户账户,使其不能登录使用。
-U——解锁用户账户。

为用户账号设置密码--passwd命令

格式

passwd 选项 用户名

常用选项 :
-d —— 清空指定用户的口令。这与未设置口令的账户不同 , 未设置口令的账户无法登录系统 , 而口令为空的账户可以。
-e —— 使用户的账号密码立即过期,强迫用户下次登录时必须修改口令。
-i —— 口令过期后多少天停用账户。
-l —— 锁定 ( 停用 ) 用户账户。
-n —— 指定口令的最短存活期。
-x —— 指定密码的最长使用期限。
-u —— 解锁用户账户
使用 echo 密码 | passwd --stdin 用户名 使用该方式也可修改用户密码

删除用户账号——userdel命令

格式
userdel  - r 用 户名
-r—— 在删除该账户的同时,一并删除该账户对应的主目录。

用户间的切换——su命令

格式

su 用户名

su - 用户名

root 用户切换到任何用户不需要密码验证,而从普通用户到 root 或其他普通用户均需要输入目标
用户的密码且验证成功后才可切换。
su su - 命令区别就是加载的配置文件不一样
su 切换方式加载的文件: ~/.bashrc /etc/bashrc
su - 切换方式加载的文件: /etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile

用户身份提权——sudo命令

使用 sudo 命令可以提高普通用户的操作权限,不过这个权限需要 root 用户进行配置 /etc/sudoers 文件才可使用。
sudo的执行流程
当用户执行sudo时,便会让用户输入自己的密码来确认(root执行sudo时不需要输入密码);
若欲切换的身份与执行者身份相同,那也不需要输入密码。
若密码输入成功,系统会去/etc/sudoers文件中查找该用户是否有执行sudo的权限;
若用户具有执行sudo的权限,便开始sudo后续接的命令
用到sudo场景

当你在一个公司入职,领导给你的用户是普通用户,但是需要用到root用户的权限这时就需要用到sudo来提升你的权限了

sudo如何使用

1、系统超级管理员需要给某个普通用户做sudo配置

2、普通用户在使用时只需要在执行命令之前加上sudo即可

sudo配置

sudo配置文件

[root@Test zhang3]# vim /etc/sudoers

进入文件后找到文件的第100行
现在来解释一下这第100行的内容
RHCSA学习--用户和组的管理_第1张图片

 root 对应用户名
第一个all对应主机名 IP地址 意思时你这个用户只有从这个IP连上的时候才有下面规定的权限
第二个all对应角色名 所有命令的执行角色比如说超级管理员
第三个all对应命令名  这个意思时用户只有这个命令的root权限

配置正式开始

只需要在刚刚100行下面配置你需要的即可

下图中的意思就是notes这个用户在任意一台设备上都可以执行root用户的所有权限

RHCSA学习--用户和组的管理_第2张图片

sudo命令执行时的选项

sudo -l:列出当前用户可以执行的命令

sudo -u 用户名 权限命令:以指定用户的身份执行需要权限的命令。可以root,也其他用户名。

sudo -k:清空sudo的提权存活期。下次在使用sudo需要输入密码

sudo -b 命令:让命令在后台执行

sudo -p 提示语:可以更改询问密码的提示语

用户组管理

创建用户组

格式
groupadd - 用户组名称
常用选项:
-g GID——指定新用户组的组标识号(GID),默认值是已有的最大的GID加1。
-r——建立一个系统组账号,与-g不同时使用时,则分配一个1~999的GID。

修改用户组属性

格式
groupmod 选项 用户组
常用选项:
-g GID——为用户组指定新的组标识号。
-n 新用户组——将用户组的名字改为新名字修改用户组的名称和用户组的GID值。

添加/删除组成员

格式
gpasswd 选项   用户  
注:只有root用户和组管理员才能够使用该命令。
选项:
-r 删除组密码
-a——把用户加入组
-d——把用户从组中删除。
-M——可同时添加多个用户
-A——给组指派管理员。

删除组账户

格式
  groupdel 用户组名
注:被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组

查询用户和组信息

显示用户信息

格式

id 用户名

显示组信息 

格式

groups 用户名

查看用户登录系统的情况 

查看当前登录系统的用户

格式

users

 例子

[notes@Test root]$ users
notes notes

列出目前与过去登入系统的用户相关信息

该命令默认会去读取/var/log/wtmp文件,并把该 文件记录的登入系统的用户名单全部显示出来

格式

last

 例子

[notes@Test root]$ last
root     pts/1        192.168.244.1    Sun Jul 30 22:00 - 22:01  (00:00)
notes    tty2         tty2             Sun Jul 30 19:43   still logged in
notes    seat0        login screen     Sun Jul 30 19:43   still logged in
reboot   system boot  5.14.0-284.11.1. Sun Jul 30 19:42   still running
只显示部分

 查看目前登陆用户

格式

w

例子 

[root@Test zhang3]# w
 10:16:14 up 44 min,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
notes    seat0     09:32    0.00s  0.00s  0.00s /usr/libexec/gdm-wayland-sessio
notes    tty2      09:32   43:59   0.02s  0.02s /usr/libexec/gnome-session-bina

手动添加一个用户

  1. 修改/etc/passwd文件给里面添加新用户的信息

  2. 修改/etc/group文件给里面添加用户组的信息

  3. 创建这个新用户的家目录(/home/新用户文件夹)

  4. 将/etc/skel中配置文件拷贝到新用户的家目录

  5. 创建新用户邮箱:touch /var/spool/mail/新用户同名邮箱

​​​​​​​

与用户和组操作有关的例子

1、新建一个用户zhang3,查看passwd、shadow文件中的变化,并确认该用户的家目录中的初始配置文件
[root@Test notes]# useradd zhang3
[root@Test notes]# tail -1 /etc/passwd
zhang3:x:1001:1001::/home/zhang3:/bin/bash
[root@Test notes]# tail -1 /etc/shadow
zhang3:!!:19569:0:99999:7:::
[root@Test zhang3]# ls -A /home/zhang3
.bash_logout  .bash_profile  .bashrc  .mozilla
2、新建一个用户wang5,指定其UID为1005、登录Shell为/bin/bash,账号永不过期

[root@Test zhang3]# useradd -u 1005 -f -1 -s /bin/bash wang5

 [root@Test zhang3]# tail -1 /etc/passwd
wang5:x:1005:1005::/home/wang5:/bin/bash

 3、新建一个用户admin,指定其家目录为/admin

[root@Test zhang3]# useradd -d /admin admin
[root@Test zhang3]# tail -1 /etc/passwd
admin:x:1006:1006::/admin:/bin/bash

 4、将用户admin的家目录移至/home目录下

[root@Test zhang3]# usermod -d /home admin
[root@Test zhang3]# tail -1 /etc/passwd
admin:x:1006:1006::/home:/bin/bash

 5、将用户wang5的名称修改为wangwu,并暂停使用该账号

[root@Test zhang3]# usermod -l wangwu wang5
[root@Test zhang3]# tail -1 /etc/passwd
wangwu:x:1005:1005::/home/wang5:/bin/bash

[root@Test zhang3]# usermod -L wangwu

6、若当前用户为root,请修改root用户的密码,并为zhang3用户设置密码 

[root@Test zhang3]# passwd 
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@Test zhang3]# passwd zhang3
Changing password for user zhang3.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

 7、删除admin用户并查看删除结果

[root@Test zhang3]# userdel admin
[root@Test zhang3]# id admin
id: ‘admin’: no such user

8、 向系统中添加一个组ID为1006,组名为group1的新组

[root@Test zhang3]# groupadd -g 1006 group1

9、将组group1的GID修改为2000,组名修改为group11

 [root@Test zhang3]# groupmod -g 2000 -n group11 group1

10、将zhang3、wangwu用户同时加入group11组,并指派zhang3为管理员

 [root@Test zhang3]# gpasswd -M zhang3,wangwu -A zhang3 group11

你可能感兴趣的:(学习,linux,运维)