centos7中的用户管理

本文详细介绍了在CentOS7系统中用户和用户组的相关文件结构、字段含义,以及常用的用户管理命令,如添加用户、修改密码、切换用户、删除用户、sudo权限管理和组管理等,帮助用户深入理解用户权限与安全管理。
摘要由CSDN通过智能技术生成

centos7中的用户管理

一、用户及用户组的相关文件和字段含义

1、用户及用户组相关文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、相关字段含义

(1)/etc/passwd
  • 以冒号:分隔,分为七个字段

  • 第一字段:用户名

  • 第二字段:密码占位符,

  • 第三字段:UID 用户ID

  • 第四字段:GID 所在用户组ID

  • 第五字段:用户注释信息
  • 第六字段:用户家目录
  • 第七字段:用户的登录SHELL工具
root:x:0:0:root:/root:/bin/bash
(2)/etc/shadow
  • 以冒号:分隔,分为九个字段

  • 第一字段:用户名

  • 第二字段:加密后的密码,!!表示没有密码

  • 第三字段:最近一次更改密码的时间,记录的是当前时间距离Unix元年的天数

  • 第四字段:密码最少使用天数,0表示无限制

  • 第五字段:密码最长使用天数,99999表示无限制。

  • 第六字段:密码距离过期天数的预警时间。

  • 第七字段:密码过期后的宽恕时间,在此时间内用户可以更改密码,过了此时间后系统会禁用 此用户,不能再登录。

  • 第八字段:账号过期时间,如果值为空则表示永久可用。

  • 第九字段:保留字段,未使用。

[root@yun01 ~]# head -1 /etc/shadow
root:$6$6aPxAKAtPTf9ql3k$maYcCgs81k7eCdYk8p2KFFBJ4ahoIfQ3PnNr.kNkgj4Prd1zkcHkgaxNB91MzmiV/MAV6QMlGYEAh03a/WS7N/::0:99999:7:::
(3)/etc/group
  • 组信息文件,分成四个字段

  • 第一字段:组名称。

  • 第二字段:组密码占位符。

  • 第三字段:GID。

  • 第四字段:显示该组作为哪个用户的附加组,多个用逗号分隔。

[root@yun01 ~]# cat /etc/group
root:x:0:
(4)/etc/gshadow
  • 组密码文件,分为四段

  • 第一段:组名称。

  • 第二段:组密码,如果是空或者!表示没有密码。

  • 第三段:用户组管理者,空表示没有管理者,如果有多个用逗号分隔。

  • 第四段:显示该用户组作为哪个用户的附加组,若有多个用逗号分隔。

[root@yun01 ~]# head -1 /etc/gshadow
root:::
(5)/etc/skel3
  • 存放用户家目录模板文件,新用户家目录内的初识内容从该目录内复制。
[root@yun01 ~]# ll -a /etc/skel/
总用量 24
drwxr-xr-x.  2 root root   62 36 10:42 .
drwxr-xr-x. 74 root root 8192 313 12:57 ..
-rw-r--r--.  1 root root   18 41 2020 .bash_logout
-rw-r--r--.  1 root root  193 41 2020 .bash_profile
-rw-r--r--.  1 root root  231 41 2020 .bashrc

(6) /var/spool/mail/
  • 用户邮箱文件所在目录
[root@yun01 ~]# ll -a /var/spool/mail
总用量 0
drwxrwxr-x. 2 root mail 18 312 00:24 .
drwxr-xr-x. 8 root root 87 36 10:43 ..
-rw-rw----. 1 hwz1 mail  0 312 00:00 hwz1

在Linux系统中是通过UID和GID来区分不同用户和组的,用户的名称是给人类看的,系统仅仅能够识别 ID这样的数字。

3、UID与GID

(1)UID:用户ID,唯一标识一个用户的数字。
  • 在CentOS 系统中UID为0的用户为管理员root用户,CentOS 7之前UID1-499为系统用户,为 了满足文件或服务启动的需要,一般不能登录,UID500之后为普通用户。CentOS 7中UID1- 200为运行系统自带进程的系统用户,201-999为安装程序的系统用户。1000+为普通用户。
(2)GID:组ID,唯一标识一个组的数字。
  • 每个用户可以属于多个组,用户必须有一个主组,其他为用户的附加组。每个组里可以包含多个用户。

二、用户管理命令

1、添加新用户

(1)语法
  • 添加新用户 useradd 用户名

  • 添加新用户到某个组 useradd -g 组名 用户名

(2)示例
# 添加用户zhangsan
[root@yun01 ~]# useradd zhangsan

# 添加新用户lisi到zhangsan组
useradd -g zhangsan lisi

2、passwd设置用户密码

(1)语法
  • passwd 用户名
(2)示例
[root@yun01 ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

3、id查看用户ID及组ID相关信息

(1)语法
  • id 用户名
(2)示例
[root@yun01 ~]# id lisi
uid=1003(lisi) gid=1002(zhangsan)=1002(zhangsan)
[root@yun01 ~]# id zhangsan
uid=1002(zhangsan) gid=1002(zhangsan)=1002(zhangsan)
[root@yun01 ~]#

4、su切换用户

(1)语法
  • su 用户名

在这里插入图片描述

(2)示例
[root@yun01 ~]# su zhangsan
[zhangsan@yun01 root]$ su lisi
密码:
[lisi@yun01 root]$ exit
exit
[zhangsan@yun01 root]$ exit
exit
[root@yun01 ~]#

[root@yun01 ~]# su - lisi   ## 区别在于不加 - 直接在当前目录,加 - 在该用户的家目录
上一次登录:三 313 14:30:57 CST 2024pts/0 上
[lisi@yun01 ~]$

[lisi@yun01 ~]$ su root -c ls /root   ## 管理员身份运行,要输入管理员密码,没有输出
密码:
[lisi@yun01 ~]$

(3)注意
  • 在root用户下切换到普通用户不需要输入密码,可以直接切换;普通用户与普通用户之间切换,需要输入被切换用户的用户密码;普通用户切换到root用户需要输入root用户的密码。
  • 切换用户后,需要输入exit才能退出当前用户,不然该用户进程一直在后台运行。

5、userdel删除用户

(1)语法
  • userdel 用户名 # 仅删除用户但不删除用户主目录

  • userdel -r 用户名 # 用户和用户主目录都删除;-r 删除用户的同时,删除与用户相关的所有的文件

(2)示例
[root@yun01 ~]# userdel zhangsan
userdel:组“zhangsan”没有移除,因为它包含其它成员。
[root@yun01 ~]# id zhangsan
id: zhangsan: no such user
[root@yun01 ~]# userdel -r lisi
[root@yun01 ~]# id lisi
id: lisi: no such user
[root@yun01 ~]# ls /home
hwz1  zhangsan

6、who查看登陆用户信息

(1)语法
  • 显示自身用户名称 whoami

  • 显示登陆用户的用户名以及登陆信息 who am i

(2)示例
[root@yun01 ~]# whoami
root

[root@yun01 ~]# who am i
root     pts/0        2024-03-13 13:54 (192.168.200.1)
[root@yun01 ~]# who i am
root     pts/0        2024-03-13 13:54 (192.168.200.1)   # 两者都可查看登录信息

7、sudo命令

(1)概念
  • 在CentOS 7中,sudo 是一个非常重要的命令,用于让普通用户以超级用户的权限来执行特定的命令。sudo 的含义是 “superuser do”,它允许授权的用户以另一个用户的身份来执行命令,通常是以超级用户(root)的身份来执行特定的系统管理任务。

  • 当在 CentOS 7 中使用 sudo 命令时,它允许授权的用户以超级用户 (root) 的身份来执行特定的命令。这种方式可以有效地限制普通用户对系统的访问和操作权限,同时减少了在 root 用户下操作可能带来的安全风险。

  • 在 CentOS 7 中,sudo 命令的使用是基于 /etc/sudoers 配置文件的,管理员可以在该文件中对特定用户或用户组设置哪些命令可以以超级用户权限执行,以及是否需要密码验证等安全设置。

  • 使用 sudo 命令可以减少在 root 用户下操作可能带来的安全风险,主要有以下几个方面:

  1. 最小权限原则:通过使用 sudo,管理员可以按需授权普通用户执行特定命令,而不必将完整的 root 权限授予他们。这样做可以遵循最小权限原则,即用户只能获得完成其任务所需的最低权限级别,而不会无意中执行危险或潜在有害的操作。这有助于减少系统遭受恶意行为或错误操作的风险。
  2. 记录和审计:通过使用 sudo 执行命令,可以更好地记录和审计用户的活动。因为每个通过 sudo 执行的命令都会在系统的日志文件中留下记录,管理员可以轻松追踪和监视用户的操作。这对于安全审计、故障排除和追踪问题非常有帮助。
  3. 密码策略和安全性:使用 sudo 可以设置密码策略,并确保只有经过授权的用户才能以 root 权限执行命令。管理员可以在 /etc/sudoers 文件中配置是否需要输入密码来使用 sudo,以及设置密码过期时间和强度要求。这有助于提高系统的整体安全性。
  4. 防止误操作:在 root 用户下执行命令时,一个小的误操作可能会导致灾难性的结果。而使用 sudo 可以限制普通用户执行危险命令的能力,减少了因误操作而引发的系统故障或数据损坏的风险。

总体而言,使用 sudo 命令可以在保持系统安全性的同时,为管理员提供更好的控制权限和追踪用户活动的能力,减少不必要的风险和潜在的安全威胁。

(2)语法
  • sudo [选项] [-u 用户名 | 用户组] 命令

    • -b 将后续的命令放到背景中让系统自行运行,不对当前的 shell 环境产生影响。

    • -u 后面可以接欲切换的用户名,若无此项则代表切换身份为 root 。

    • -l 此选项的用法为 sudo -l,用于显示当前用户可以用 sudo 执行那些命令。

(3)示例
[hwz1@yun01 root]$ sudo ls /root

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] hwz1 的密码:
hwz1 不在 sudoers 文件中。此事将被报告。
[hwz1@yun01 root]$
# 我们没有配置  /etc/sudoers 文件,系统默认是不允许的

# 配置 /ect/sudoers 文件

在这里插入图片描述


[root@yun01 ~]# su hwz1
[hwz1@yun01 root]$ sudo ls /root
[sudo] hwz1 的密码:
4                Desktop  f2  file1  newfilename  test.c   test.txt  tmp.tar.gz  xcz
anaconda-ks.cfg  f1       f3  my     passwd       test.sh  text1     vitest      ztest
[hwz1@yun01 root]$

# hwz1 ALL=(ALL) NOPASSWD:ALL  配置成采用sudo命令时,不需要输入密码

8、usermod修改用户

(1)语法
  • usermod [选项] [参数] 用户名

在这里插入图片描述

(2)示例
[root@yun01 ~]# usermod -L hwz1

在这里插入图片描述

[root@yun01 ~]# usermod -U hwz1

在这里插入图片描述

三、用户组管理命令

  • 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户 组的规定有所不同, 如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
  • 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的 更新。

1、groupadd新增组

(1)语法
  • groupadd 组名
(2)示例
[root@yun01 ~]# groupadd test1
[root@yun01 ~]# tail -1 /etc/group
test1:x:1003:

2、groupdel删除组

(1)语法
  • groupdel 组名
(2)示例
[root@yun01 ~]# groupdel test1
[root@yun01 ~]# tail -1 /etc/group
zhangsan:x:1002:
[root@yun01 ~]#

3、groupmod修改组

(1)语法
  • groupmod -n 新组名 老组名

  • -n 指定工作组的新组名

(2)示例
[root@yun01 ~]# groupadd test1
[root@yun01 ~]# groupmod -n test2 test1
[root@yun01 ~]# tail -1 /etc/group
test2:x:1003:
[root@yun01 ~]#
# 将组名test1 改为 test2

4、gpasswd把用户添加进组或从组中删除

(1)语法
  • gpasswd [选项] 组名

在这里插入图片描述

(2)示例
[root@yun01 ~]# gpasswd -a hwz1 test2
正在将用户“hwz1”加入到“test2”组中
[root@yun01 ~]#

  • groupmod -n 新组名 老组名

  • -n 指定工作组的新组名

(2)示例
[root@yun01 ~]# groupadd test1
[root@yun01 ~]# groupmod -n test2 test1
[root@yun01 ~]# tail -1 /etc/group
test2:x:1003:
[root@yun01 ~]#
# 将组名test1 改为 test2

4、gpasswd把用户添加进组或从组中删除

(1)语法
  • gpasswd [选项] 组名

[外链图片转存中…(img-bdqMiMMH-1710376419026)]

(2)示例
[root@yun01 ~]# gpasswd -a hwz1 test2
正在将用户“hwz1”加入到“test2”组中
[root@yun01 ~]#

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老伙子53

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值