一、用户和组

1、USER用户

用户账户为不同人员和运行的程序之间提供安全边界

用户使用用户名进行标识,操作系统为其分配唯一标识号(UID),通常使用用户账户需要密码

系统中的每个程序都以一个特定用戶运行,每个文件都有一个特定用户作为所有者

用戶帐戶有三种主要类型:超级用戶系统用戶普通用戶(superuser, system users, and regular users)

  • superuser :root 用户,UID=0,具有系统的最高权限
  • system user :用于系统管理,例如运行服务,不需要用于系统登录
  • regular user :供用户进行日常系统管理,通常具有权限限制

id [Ezekielx] :查看当前用户或指定用户信息

uBf8mOLn-1.png

ls -l :命令查看文件或目录的所属用户

uBf8mOLn-2.png

cat /etc/passwd :系统使用 /etc/passwd 文件存储有关本地用户的信息。/etc/passwd 文件的每一行都包含了有关某个用户的信息

uBf8mOLn-3.png

  • root :用户名
  • x :用户的加密密码历来储存在这里,现在是一个占位符
  • 0 :用户的UID编号
  • 0 :用户的主要组的GID编号
  • root :用户的简短注释
  • /root 用户的主目录,以及登陆shell启动时的初始工作目录
  • /bin/bash :用户的默认shell程序,在登录时运行。一些账户使用 /sbin/nologin shell来禁止该账户进行交互式登录

2、GROUP组

组是需要共享文件和其他系统资源访问权限的用户的集合。组可以向一组用户授予文件访问权限

操作系统通过分配唯一标识号(GID)来区分不同的组

cat /etc/group :系统使用 /etc/group 文件存储有关本地组的信息。

uBf8mOLn-4.png

  • root :组名称
  • x :以前的密码字段,现在是一个占位符
  • 0 :组的GID编号
  • :属于此组成员的用户列表,用来作为一个补充组

3、主要组和补充组

每个用户有且仅有一个主要组。对于本地用户而言,这个组按照GID列在 /etc/passwd 文件中。主要组拥有用户创建的文件

在创建普通用户时,会创建一个与用户同名的组,作为该用户的主要组。该用户是这个用户私有组的唯一成员。这种组成员资格设计简化了文件权限的管理,默认为区隔不同的用户组。

用户还可以有补充组。补充组中的成员资格存储在 /etc/group 文件中。根据所在的组是否具有访问权限,将授予用户对文件的访问权限,不论这些组是主要组还是补充组。例如,如果 user 用户有一个主要组 user 以及两个补充组 wheelwebadmin,那么该用户就可以读取这三个组中
任何一个组有权读取的文件。(相当于给 user 用户补充了组 wheelwebadmin 的权限)

二、管理本地用户账户

1、UID范围

红帽企业 Linux 使用特定的 UID 编号和编号范围来满足特殊用途

  • UID 0 :超级用户(root)账户 UID
  • UID 1-200 :静态分配给系统进程的系统账户 UID
  • UID 201-999 :供文件系统中没有自己的文件的系统进程使用。通常在安装需要它们的软件时,从可用池中动态分配它们。程序以这些“无特权”系统用戶身份运行,它们仅访问运行所需的资源
  • UID 1000+ :分配给普通非特权用戶

2、用户的增删改查

useradd [kielx_1] :添加一个名为 [kielx_1] 的用户

uBf8mOLn-5.png

useradd -u [25565] [kielx_2] :新增名为 [kielx_2] 的新用户,指定 UID 为 [25565]

uBf8mOLn-6.png

useradd -d [/opt/kielx_3/] [kielx_3] :新增名为 [kielx_3] 的新用户,指定家目录为 [/opt/kielx_3/]

uBf8mOLn-7.png

useradd -s [/sbin/nologin] [kielx_4] :新增名为 [kielx_4] 的新用户,指定登录 shell 为 [/sbin/nologin] 使其无法登录

uBf8mOLn-8.png

useradd -g [kielx-5] [kielx_5] :新增名为 [kielx_5] 的新用户,指定主要组(必须是已经存在的组)为 [kielx-5]

uBf8mOLn-9.png

useradd -G [kielx-5] [kielx_6] :新增名为 [kielx_6] 的新用户,指定补充组(必须是已经存在的组)为 [kielx-5]

uBf8mOLn-10.png

userdel [kielx_6] :删除用户,不删除用户的家目录

uBf8mOLn-11.png

userdel -r [kielx_5] :删除用户,以及用户的家目录

uBf8mOLn-12.png

usermod -u [25564] [kielx_1] :将用户 [kielx_1] 的 UID 改为 [25564]

uBf8mOLn-13.png

usermod -d [/home/kielx_3/] [kielx_3] :将用户 [kielx_3] 的家目录改为 [/home/kielx_3/]

uBf8mOLn-14.png

usermod -s [/sbin/nologin] [kielx_4] :将用户 [kielx_4] 的登录 shell 改为 [/bin/bash]

uBf8mOLn-15.png

passwd [kielx_1] :更改用户 [kielx_1] 的密码

uBf8mOLn-16.png

3、组的增删改查

groupadd [Kielx_1] :添加一个名为 [Kielx_1] 的组

uBf8mOLn-17.png

groupadd -g [2803] [Kielx_2] :添加一个名为 [Kielx_1] 的组,指定 GID 为 [2803]

uBf8mOLn-18.png

groupdel [Kielx_2] :删除组(如果组是现有用户的主要组,则无法删除。如果一定要删除主要组,需要更改主要组)

uBf8mOLn-19.png

groupmod -g [2803] [Kielx_1] :将组 [Kielx_1] 的 GID 改为 [2803]

uBf8mOLn-20.png

groupmod -n [Kielx] [Kielx_1] :将组 [Kielx_1] 的 名称 改为 [Kielx]

uBf8mOLn-21.png

gpasswd -a [kielx_1] [Kielx] :将用户 [kielx_1] 添加到组 [Kielx]

uBf8mOLn-22.png

gpasswd -d [kielx_1] [Kielx] :将用户 [kielx_1] 从组 [Kielx] 中删除

uBf8mOLn-23.png

usermod -G [kielx_2],[kielx_3],[kielx_4]/[kielx-5] [kielx] :将用户 [kielx_1] 的附加组设置为(覆盖)[kielx_2],[kielx_3],[kielx_4]/[kielx-5]

uBf8mOLn-24.png

usermod -aG [kielx_2],[kielx_3],[kielx_4] [kielx] :将组 [kielx_2],[kielx_3],[kielx_4] 添加到用户 [kielx_1] 的附加组中

uBf8mOLn-25.png