Linux操作系统运维-用户与用户组管理

Linux操作系统运维-用户与用户组管理

用户种类与标识查看

  • 超级用户(root):可以不受限制地执行所有操作,拥有系统最高权限,修改系统设置与管理用户均需要root权限
  • 系统用户(system):它是系统本身或应用程序使用的账户,分为系统安装时创建的账户和用户自定义的系统账户
  • 普通用户(regular):该账户是常规用户,在系统中不执行系统管理任务,只执行日常应用

Linux使用UID作为账户的唯一标识,并且有以下特殊UID:

账户类型UID范围
rootUID=0
系统账户UID=1~499、65534
普通账户UID≥1000
  • 很多linux的发行版也以500开始作为为普通用户编号
  • 65534是Linux系统中预留的一个保留UID,通常用于指示某个文件或进程不属于任何实际用户或组。这个UID通常被称为“无主账户”(nobody)。它不是一个真正的账户编号,也不应该被用于创建新的用户账户。

查看当前与用户相关信息指令

命令作用
id直接展示当前账户的UID与GID
id [用户名]查看指定用户的 UID 和 GID
who查看当前所有用户登录列表
whoami查看当前用户登录的账户名
cat /etc/passwd查看当存在的所有用户与信息

使用root权限管理系统

对于普通用户是没有权限进行修改系统设置和管理其他用户的,只有root用户和授予了管理员权限的用户才能够管理维护系统,但是root用户权限过高,很多linux发行版禁用了root账户,转而使用具有管理员权限的账户(即后文中提到用户组中sudo组成员用户),通常需要使用sudo命令来暂时提升权限或者使用su命令切换用户。

sudo命令与常见选项

sudo(Superuser Do)是一个在Unix和类Unix操作系统中使用的命令行工具,允许普通用户以超级用户(root)的身份执行特定命令,通常是系统管理任务。使用sudo可以提高系统的安全性,因为它允许管理员授予特定用户执行特定任务的权限,而无需将完整的超级用户权限授予他们。

sudo [option] [command ...]
选项说明
sudo command使用sudo加上命令用于提升权限至root执行后面的命令
-u, --user=user command指定要以哪个用户的身份执行命令。
-g, --group=group command指定要以哪个用户组的身份执行命令。
-l, --list列出当前用户的sudo权限。
-b, --background在后台运行命令。
-e, --edit使用默认编辑器编辑sudoers文件。
-E, --preserve-env保持环境变量,不清除用户的环境变量。
-H, --set-homeHOME环境变量设置为目标用户的家目录。
-i, --login以目标用户的环境登录,不指定用户即默认为root环境
-k, --reset-timestamp重置sudo的时间戳。
-V, --version显示sudo的版本信息。

则有以下切换到root用户的方法:我们可以用sudo -i切换到root用户登录(需要当前用户的密码),最后使用exit命令退出当前登录shell即可

在这里插入图片描述

su命令与常见选项

su命令(Switch User)是在Unix和类Unix操作系统中用于切换用户身份的命令。通过su命令,可以在当前终端会话中切换到另一个用户的环境,通常默认切换到超级用户(root)。普通用户切换为其他用户需要提供对应用户的密码,而root用户切换到其他用户不需要提供密码

su [option] [userName]
选项说明
su直接切换到root用户,但保留当前用户的环境变量
su -直接切换到root用户,并加载其环境变量
su userName切换到指定用户
-c, --command=COMMAND在切换用户后执行指定的命令。
-s, --shell=SHELL指定要使用的shell。默认为目标用户的登录shell。
-l, --login登录目标用户,加载其环境变量。
-m, --preserve-environment保留原始用户的环境变量。

临时切换用户命令后,我们也可以通过exit退出:

在这里插入图片描述

切换至root用户的方式汇总

指令描述
su root切换到 root 用户
sudo -i保留当前环境变量并使用 root 用户登录 shell
su切换到 root 用户(等同于 su root
su -切换到 root 用户并启动新的登录 shell,加载 root 用户的环境变量

注意:在服务端的linux系统中还可以使用logout来退出当前用户的登录

sudoers文件定义用户规则

sudoers文件是一个用于配置sudo命令的配置文件,定义了哪些用户、哪些主机以及在执行sudo命令时允许执行哪些命令。这个文件通常位于/etc/sudoers。编辑sudoers文件时应使用visudo命令,因为它会在保存文件时进行语法检查,防止可能导致系统安全问题的错误,其中规则对应的以某身份执行命令指的是使用sudosu命令以其他用户身份执行命令

用户规则:

user host=(runas_user:runas_group) command

允许user在指定的host上以runas_user:runas_group的身份执行特定的command

组规则:

%group host=(runas_user:runas_group) command

允许group的成员在指定的host上以runas_user:runas_group的身份执行特定的command

免密码规则:

user host=(runas_user) NOPASSWD: command

允许user在指定的host上以runas_user的身份无需输入密码执行特定的command

命令别名:

Cmnd_Alias CMD_ALIAS = /path/to/command, /path/to/another_command

定义一个命令别名,使得可以在规则中引用这个别名而不必列出所有的命令。

主机别名:

Host_Alias HOST_ALIAS = host1, host2

定义一个主机别名,使得可以在规则中引用这个别名而不必列出所有的主机。

用户别名和组别名:

User_Alias USER_ALIAS = user1, user2
%Group_Alias = group1, group2

分别定义用户别名和组别名,以便在规则中引用它们而不必列出所有的用户或组。

默认规则:

Defaults option

设置sudo的默认选项,如允许或禁止使用sudo的一些功能,或者定义默认的PATH等(在sudoers文件的前半段就是默认配置信息)。

用户的创建与管理

useradd命令与常见选项

useradd [option] [userName]
选项说明
-c, --comment COMMENT设置用户的注释信息。
-d, --home DIRECTORY指定用户的主目录。
-g, --gid GROUP指定用户的初始登录组。
-G, --groups GROUPS指定用户的附加组。多个组之间使用逗号分隔。
-m, --create-home创建用户的同名主目录。
-s, --shell SHELL指定用户的登录 shell。
-u, --uid UID指定用户的用户ID。
-e, --expiredate EXPIRE指定用户的过期日期。
-r, --system创建一个系统用户。
-U, --user-group创建与用户名同名的用户组,并将用户添加到这个组中。
-M, --no-create-home不创建用户的主目录。

注意:在未指定用户组的情况下,系统会默认创建与用户同名的用户组

userdel命令与常见选项

userdel -r [用户名]  # 删除用户与其主目录
选项说明
-r, --remove删除用户的主目录和邮箱目录。
-f, --force强制删除用户,即使用户当前登录。
-Z, --selinux-user指定删除用户时关联的 SELinux 用户。
-h, --help显示帮助信息。

passwd命令与常见选项

passwd 命令用于更改用户的密码。这个命令允许用户更改自己的密码,或者超级用户(root)可以更改其他用户的密码。在Linux系统中,密码是存储在 /etc/shadow 文件中的,而 passwd 命令负责更新这个文件中的密码信息。

passwd [option] [userName]
选项说明
(无选项与用户名)更改当前用户的密码。
-e, --expire强制用户下次登录时更改密码。
-l, --lock锁定用户密码,防止登录。
-u, --unlock解锁先前被锁定的用户密码。
-S, --status显示密码更改策略信息。
-d, --delete删除密码,使用户无密码登录。
-n, --mindays MIN设置密码的最短使用期限。
-x, --maxdays MAX设置密码的最长使用期限。
-w, --warndays WARN在密码过期前的天数提供警告。
-i, --inactive INACTIVE设置密码过期后账户被禁用前的天数。

useradd文件指定默认配置

在Debian系列的Linux系统中,/etc/default/useradd 文件用于配置useradd命令的默认行为。这个文件包含一些变量,这些变量定义了在使用useradd命令创建新用户时的默认设置。

以下是一些在/etc/default/useradd文件中常见的变量:

HOME 指定新用户的默认主目录。例如:

HOME=/home

SHELL 指定新用户的默认登录 shell。例如:

SHELL=/bin/bash

SKEL 指定包含默认用户配置文件的骨架目录。当创建新用户时,/etc/skel 目录中的内容会被复制到新用户的主目录。例如:

SKEL=/etc/skel

CREATE_MAIL_SPOOL 如果设置为 “yes”,则新用户在创建时将会有一个邮箱。如果设置为 “no”,则不创建邮箱。例如:

CREATE_MAIL_SPOOL=yes

GROUP 指定新用户的初始登录组。例如:

GROUP=users

passwd文件关联用户配置

passwd 文件是存储用户账户密码信息的文件(我们通常也用来查看系统中存在哪些用户),在Linux系统中通常位于/etc/passwdpasswd 文件包含系统上所有用户的基本信息,包括用户名、用户ID(UID)、组ID(GID)、用户描述信息、主目录以及登录 shell 等。

注意:在Linux中/etc/passwd文件中存放着所有用户的信息,则我们可以利用以下命令来查看用户信息

cat /etc/passwd/ | grep [用户名]  # 查看用户名单

查询出的信息有以下内容,我们用kali展示其信息格式和各部分对应的东西:

在这里插入图片描述

注意/etc/passwd文件并不保存密码,所以密码处为x,下面还有其他查看信息的命令

禁用账户的方法

我们可以在/etc/passwd文件中对应账户前面加上*即可禁用该账户

在这里插入图片描述

如图所示,我们接下来切换xxx用户,发现无法切换:

在这里插入图片描述

shadow文件关联密码配置

在linux中为了安全,将用户的密码以高安全性哈希算法加密后保存在/etc/shadow中:

在这里插入图片描述

注意:保留段用于未来的扩展需求

用户组的种类与标识

用户组的种类

组群种类说明标识
超级组通常指的是root组,具有最高权限。GID=0
系统组用于系统服务和进程,GID为1~499。GID=1~499
自定义组用户创建的普通组,用于自定义用户划分和权限管理。GID≥1000

用户组的标识

组群标识说明
主组用户的默认组,用户默认创建时一般会被分配到一个同名的默认主组。
附加组用户可以加入的其他组,允许用户在不同的组之间共享资源和权限。

group文件关联组配置

/etc/group 文件是Linux系统中存储用户组信息的文本文件。这个文件包含了系统中所有用户组的定义,以及每个用户组的成员列表。在该文件中,每一行表示一个用户组的信息,字段之间使用冒号(:)分隔

除去id命令,我们查看用户组信息也可以查看/etc/group配置文件:

在这里插入图片描述

同样的,此文件一样不会保存密码信息

gshadow文件关联密码配置

/etc/gshadow 文件是Linux系统中存储用户组密码信息的文件。与 /etc/group 文件类似,/etc/gshadow 文件用于存储加密的用户组密码,其中包含关于用户组的敏感信息。这个文件通常只能由超级用户(root)进行编辑

将组群密码加密存放在/etc/gshadow文件中:

在这里插入图片描述

注意:未加密则显示

usermod命令与常见选项

usermod 命令用于修改用户账户的属性,包括用户ID(UID)、主组ID(GID)、附加组、主目录、登录 shell 等。这个命令允许管理员对已有用户进行修改而无需创建新用户。

选项说明
-c, --comment COMMENT设置用户的注释信息。
-d, --home DIRECTORY修改用户的主目录。
-g, --gid GROUP修改用户的初始登录组。
-G, --groups GROUPS修改用户的附加组。多个组之间使用逗号分隔。
-s, --shell SHELL修改用户的登录 shell。
-u, --uid UID修改用户的用户ID。
-e, --expiredate EXPIRE修改用户的过期日期。

**注意:**默认的useradd添加的用户是没有权限使用sudo命令的,需要修改附加组

usermod -G sudo [userName]

groupadd命令与常见选项

groupadd 命令用于在Linux系统中创建新用户组。用户组是一种组织和管理用户的方式,允许用户在共享资源和权限方面进行更好的管理。常见选项有一个,其他可以用时进行了解.

  • 创建自定义用户组
groupadd [groupName]
  • 创建一个用户组,并且指定GID
groupadd -g [groupId] [groupName]

groupdel命令与使用示例

groupdel 命令用于在Linux系统中删除用户组。用户组是一种组织和管理用户的方式,使用 groupdel 命令可以删除不再需要的用户组。它通常不需要额外的选项

groupdel [groupName]
  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值