欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【Linux学习】十五、Linux/CentOS 7 用户和组管理

【Linux学习】十五、Linux/CentOS 7 用户和组管理

2024/12/21 5:59:27 来源:https://blog.csdn.net/Allwordhuier/article/details/144429538  浏览:    关键词:【Linux学习】十五、Linux/CentOS 7 用户和组管理

文章目录

  • 一、组的管理
    • 1.组的创建
      • 格式:
      • 参数:
    • 2.组的删除
      • 格式:
      • 参数:
    • 3.组的属性修改
      • 格式:
      • 参数:
    • 4.查看组的信息
      • ①cat /etc/group 命令
      • ②getent group 命令
      • ③仅显示系统中所有组名
  • 二、用户的管理
    • ①超级用户(Superuser):
    • ②普通用户(Regular User):
    • ③服务用户(Service User):
    • ④系统用户(System User):
    • ⑤匿名用户(Anonymous User):
    • 1. 创建用户
      • 格式:
      • 参数说明:
    • 2.删除用户
      • 格式:
      • 参数说明:
    • 3.查看用户
      • ①id命令
      • 格式:
      • ②whoami 命令
      • ③cat /etc/passwd 命令
      • ④getent passwd 命令
      • ⑤仅显示系统中所有用户名
      • ⑥ w命令:
    • 4.修改用户属性
      • 格式:
      • 选项:
    • 5.切换用户
      • 格式:
      • 选项:
    • 6.设置用户密码:
      • 格式:
      • 选项
    • 7.将用户添加到用户组:
    • 8.从用户组中移除用户:
      • 语法格式:
      • 选项:

Linux下组和用户的管理都必须是root用户下进行:

一、组的管理

1.组的创建

格式:

groupadd 组名

参数:

-g:指定用户组的组ID(GID),如果不提供则由系统自动分配。

【案例】创建一个名为 oldgroup 的新组

groupadd newgroup

系统将自动分配一个唯一的组ID(GID)给这个用户组。

2.组的删除

格式:

groupdel 组名

参数:

-f:强制删除用户组,即使用户组还有关联的用户。
【案例】 删除名为 oldgroup 的组

groupdel oldgroup

3.组的属性修改

格式:

groupmod [选项] 组名

参数:

-n:更改组名
-g:修改用户组的组ID(GID)。
-o:允许使用非唯一的组ID(GID)。
groupmod命令还有其他一些选项和参数,可以使用man groupmod命令在终端中查看groupmod的完整文档和使用说明。
【案例一】将名为"oldgroup"的用户组的组名更改为"newgroup",可以执行以下命令:

groupadd oldgroup
groupmod -n newgroup oldgroup

【案例二】修改名为 “newgroup” 的用户组的组ID(GID)为 1234,可以执行以下命令

groupmod -g 1234 newgroup

4.查看组的信息

①cat /etc/group 命令

在这里插入图片描述

②getent group 命令

在这里插入图片描述
与 cat /etc/group 不同的是,getent group 命令可以从不仅限于 /etc/group 文件中,还包括其他用户组数据库(如 NIS、LDAP 等)中获取用户组信息。

③仅显示系统中所有组名

cut -d: -f1 /etc/group

二、用户的管理

①超级用户(Superuser):

超级用户,也称为root用户,是系统中最高权限的用户。
root用户拥有对整个系统的完全控制权,可以执行任何操作,包括修改系统配置、安装软件、管理其他用户等。
超级用户(root)的UID为0。

②普通用户(Regular User):

普通用户是指一般使用计算机的用户。
普通用户只能访问和修改自己的文件及部分系统资源,无法对整个系统做出重要的变更。
普通用户可以通过sudo命令获取临时超级用户权限,执行需要特权的操作。
普通用户的UID从500开始递增。这些用户是系统中的一般用户,具有交互式登录权限,并且可以根据需要创建、管理和使用文件。

③服务用户(Service User):

服务用户是专门用于运行系统服务和守护进程的用户。
服务用户通常没有登录权限,它们的作用是限制服务进程的权限,以增加系统的安全性。
每个服务用户都与一个或多个特定的服务相关联,这些服务可以在后台运行并提供特定的功能。

④系统用户(System User):

系统用户是用于执行系统任务和特定应用程序的用户。
系统用户通常没有登录权限,它们被用来运行需要特定环境的任务和脚本。
与服务用户类似,系统用户的目的是限制其操作范围,提高系统的安全性和稳定性。
系统用户的UID范围为1到499。这些用户账户用于运行系统服务和进程,通常没有交互式登录权限。

⑤匿名用户(Anonymous User):

匿名用户是不需要身份验证即可访问某些服务或资源的用户。
常见的例子是FTP服务器上的匿名用户,允许用户通过匿名方式下载或上传文件。

1. 创建用户

格式:

useradd  选项   用户名

参数说明:

  • -d 目录 指定用户目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
  • -g 用户组 指定用户所属的用户组
  • -G 用户组 指定用户所属的附加组
  • -s Shell文件 指定用户的登录Shell
  • -u 用户号 指定用户的用户号,如果同时有 -o选项,则可以重复使用其他用户的标识号
  • -c:为用户添加注释,通常是用户的全名或描述。
    【案例一】创建一个名为"username"的用户,可以执行以下命令:
useradd username

【案例二】创建一个名为johndoe的用户,添加了一个注释为"John Doe",指定了/home/johndoe为家目录,并将默认shell设置为/bin/bash,可以执行以下命令:

useradd -c "John Doe" -d /home/johndoe -s /bin/bash johndoe

【案例三】分别创建三个新用户账号:aa、bb 和 cc,并将它们的用户ID(UID)设置为 555、556 和 557,这些用户将/a 作为家目录, 可以执行以下命令:

useradd -u 555 aa -d /a
useradd -u 556 bb -d /a
useradd -u 557 cc -d /a

注意

①执行useradd命令需要root或具有管理员权限的用户。
②使用 useradd 命令只会创建用户账户,但不会设置密码。通常需要使用 passwd 命令为新用户设置密码。

2.删除用户

格式:

userdel 选项 用户名

参数说明:

  • -r:删除用户的HOME主目录及其内容。不指定-r,删除用户时,HOME目录保留
  • -f:强制删除用户账户,即使用户正在登录或有其他进程。
    【案例一】要删除"username"用户及其主目录,可以执行以下命令:
userdel -r usrname

【案例二】分别删除用户账户 aa、bb 和 cc,并且同时删除与这些账户关联的家目录,可以执行以下命令:

userdel -r aa
userdel -r bb
userdel -r cc

3.查看用户

①id命令

显示当前用户的身份信息,包括用户ID(UID)、组ID(GID)以及所属的组。

格式:

id 用户名

②whoami 命令

查看当前登录用户的用户名:

whoami

在这里插入图片描述

③cat /etc/passwd 命令

查看系统中所有用户的详细信息 :
在这里插入图片描述
该命令会读取并显示 /etc/passwd 文件的内容,其中包含了用户账户的相关信息。每行的格式为:

username:password:UID:GID:gecos:directory:shell

注释:

  • username: 用户名
  • password: 加密后的密码(通常是 “x” 或 “*” 表示已在 /etc/shadow 文件中存储)
  • UID: 用户ID(唯一标识符)
  • GID: 主要组ID(与 /etc/group 中的组ID对应)
  • gecos: 用户的全名或注释字段
  • directory: 用户的主目录路径
  • shell: 用户默认的登录Shell
    通过运行 cat /etc/passwd 命令,可以查看和分析系统中所有用户的信息。

④getent passwd 命令

列出系统中所有用户的信息:

getent passwd

在这里插入图片描述

  • getent passwd 命令用于从系统的用户数据库中获取所有用户的信息。它会返回与 /etc/passwd 文件相同格式的输出,包含了系统中所有用户的详细信息。

  • 与 cat /etc/passwd 不同的是,getent passwd 命令可以从不仅限于 /etc/passwd 文件中,还包括其他用户数据库(如 NIS、LDAP 等)中获取用户信息。

⑤仅显示系统中所有用户名

cut -d: -f1 /etc/passwd

在这里插入图片描述

⑥ w命令:

显示当前登录系统的用户信息,包括用户名、终端、登录时间、运行的命令等。
在这里插入图片描述

4.修改用户属性

格式:

usermod [选项] 用户名

选项:

- -c, --comment:修改用户的注释。

  • -d, --home:修改用户的家目录路径。
  • -g, --gid:修改用户的主组ID。
  • -G, --groups:修改用户所属的附加组ID列表。
  • -s, --shell:修改用户的默认shell。
  • -L, --lock:锁定用户账号,禁止用户登录。
  • -U, --unlock:解锁用户账号,允许用户登录。
  • -e, --expiredate:修改用户的过期日期。
    【案例一】要将"username"用户所属的主组更改为"newgroup",可以执行以下命令:
usermod -g newgroup username

【案例二】将修改名为johndoe的用户的注释为"John Smith",家目录为/home/johnsmith,并将默认shell更改为/bin/bash。 可以执行以下命令:

usermod -c "John Smith" -d /home/johnsmith -s /bin/bash johndoe

【案例三】分别修改账号 aa、bb 和 cc 的家目录路径和登录shell:

对于账号 aa,将家目录路径修改为 /newhome1,登录shell修改为 /bin/bash。
对于账号 bb,将家目录路径修改为 /newhome2,登录shell修改为 /bin/sh。
对于账号 cc,将家目录路径修改为 /newhome3,登录shell修改为 /usr/bin/zsh。

usermod -d /newhome1 -s /bin/bash aa
usermod -d /newhome2 -s /bin/sh bb
usermod -d /newhome3 -s /usr/bin/zsh cc

【案例四】分别修改用户 aa 的家目录路径为 /newhome,修改用户 bb 的登录shell为 /bin/bash,以及修改用户 cc 的登录名为 newname ,可以执行以下命令:

usermod -d /newhome aa
usermod -s /bin/bash bb
usermod -l newname cc

5.切换用户

格式:

su [选项] [用户名]

选项:

  • -c, --command:执行指定的命令,而不是打开新的shell。
  • -l, --login:模拟登录为目标用户,加载用户的环境变量和配置文件。
  • -s, --shell:使用指定的shell,而不是目标用户的默认shell。
  • 【案例一】要切换到"username"用户,可以执行以下命令:
  su username

【案例二】切换到超级用户(root)身份,可以执行以下命令:

su

【案例三】切换到johndoe用户,并执行ls -l命令,可以执行以下命令:

su -c "ls -l" -l johndoe

6.设置用户密码:

使用passwd命令为用户设置密码。passwd命令是在Linux系统中用于更改用户密码的命令。它允许用户修改自己的密码或管理员修改其他用户的密码。

格式:

passwd [选项] [用户名]

选项

  • -l, --lock:锁定用户账户,禁止用户使用该账户登录。
  • -u, --unlock:解锁被锁定的用户账户。
  • -d, --delete:删除用户密码,使用户无法通过密码登录,但仍可使用其他身份验证方法登录。
  • -e, --expire:将用户的密码设置为过期状态,在下次登录时需要强制更改密码。
  • -x, --maxdays:设置用户密码的最大有效天数。
  • -n, --mindays:设置用户必须保持密码不变的最短天数。
  • -w, --warndays:在密码过期之前提前多少天向用户发出警告。
    ①更改当前用户密码
passwd

②更改特定用户的密码:

passwd 用户名

③锁定用户账户:

passwd -l 用户名

7.将用户添加到用户组:

使用usermod命令可以将用户添加到一个或多个用户组
【案例一】要将名为"username"的用户添加到"mygroup"用户组,可以执行以下命令:

usermod -aG mygroup username

8.从用户组中移除用户:

使用gpasswd命令可以从用户组中移除用户。gpasswd 命令用于管理用户组的密码和成员。它允许管理员设置用户组的密码、添加或删除用户组的成员。

语法格式:

gpasswd [选项] 组名

选项:

-a, --add 用户名:将指定的用户添加到目标用户组。
-d, --delete 用户名:从目标用户组中删除指定的用户。
-r, --remove-password:从目标用户组中移除密码,使用户组无需密码即可加入。
-R, --restrict:限制只有用户组的所有者和超级用户(root)可以添加或删除成员。
-M, --members 用户列表:设置用户组的成员列表,替换原有成员列表。
管理用户组的示例:

①添加用户到用户组:

gpasswd -a 用户名 组名

②从用户组中删除用户:

gpasswd -d 用户名 组名

③设置用户组的密码:

gpasswd 组名

④移除用户组的密码:

gpasswd -r 组名

例如,要将名为"username"的用户从"mygroup"用户组中移除,可以执行以下命令:

gpasswd -d username mygroup

注意

执行gpasswd命令需要root或具有管理员权限的用户。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com