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

news2024/10/5 18:24:14

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]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1415463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

S275智慧煤矿4G物联网网关:矿山开采的未来已来

随着经济发展煤矿需求不断激增,矿山矿井普遍处于偏远山区,生产管理、人员安全、生产效率是每个矿山矿井都需要考虑的问题,利用网关对现场终端设备连接组网,实现智慧煤矿远程管理。 各矿山矿井分布范围比较广泛,户外环…

Leetcode541反转字符串Ⅱ(java实现)

我们今天分享的题目是字符串反转的进阶版反转字符串Ⅱ。 我们首先来看题目描述: 乍一看题目,有种懵逼的感觉,不要慌,博主来带着你分析题目,题目要求: 1. 每隔2k个字符,就对2k字符中的前k个字符…

【mongoDB】创建用户账号和权限

使用use database_name 命令创建或切换到一个数据库 查看用户 show users 输入该命令后,无数据表示该数据库没有用户 创建用户 user:" freedom " 表示用户名为freedom pwd:" 123456 ” 表示密码为123456 roles:[" root "] …

pcl之滤波器(三)

pcl滤波器 pcl一共是有十二个主要模块,详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块,官网一共是提供了6个例程,今天看第五个、第六个。 从一…

CSS设置单行文字水平垂直居中的方法

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>单行文字水平垂直居中</title><style>div {/* 给div设置宽高 */width: 400px;height: 200px;margin: 100px auto;background-color: red;/…

【深度学习每日小知识】Bias 偏差

计算机视觉是人工智能的一个分支&#xff0c;它使机器能够解释和分析视觉信息。然而&#xff0c;与任何人造技术一样&#xff0c;计算机视觉系统很容易受到训练数据产生的偏差的影响。计算机视觉中的偏见可能会导致不公平和歧视性的结果&#xff0c;从而使社会不平等长期存在。…

[GYCTF2020]Ezsqli1

打开环境&#xff0c;下面有个提交表单 提交1&#xff0c;2有正确的查询结果&#xff0c;3以后都显示Error Occured When Fetch Result. 题目是sql&#xff0c;应该考察的是sql注入 简单fuzz一下 发现information_schema被过滤了&#xff0c;猜测是盲注了。 测试发现只要有东…

【MySQL】学习如何通过DML更新数据库的数据

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-QIqURn9fNFMjLD9l {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

火车票车票查询-Python

一、相关代码 # Time: 2024/1/22 20:24 # Author: 马龙强 # File: 实现12306查票购票.py # software: PyCharm """网址&#xff1a;https://www.12306.cn/index/ 数据&#xff1a;车次信息 查票链接&#xff1a;https://kyfw.12306.cn/otn/leftTicket/queryE?…

四、vtk相机类vtkCamera的使用

在三维渲染场景中,相机好比观众的眼睛,人站立的位置影响事物的大小,视角的不同影响看到事物的范围,目光的朝向影响看到事物的正反。 vtkCamera负责把三维场景投影到二维平面,如屏幕、图像等。 下图为相机投影示意图: 相机位置:即相机所在的位置,用方法vtkCamera::Se…

【Linux】进程间通信概念 | 匿名管道

文章目录 一、什么是进程间通信进程间通信的概念进程间通信的目的进程间通信的分类进程间通信的本质 二、什么是管道三、匿名管道匿名管道的原理✨站在内核角度理解管道✨站在文件描述符角度理解管道 pipe系统调用fork后在父子进程间使用管道通信代码实现 匿名管道的读写规则管…

【论文笔记】《Learning Deconvolution Network for Semantic Segmentation》

重要说明&#xff1a;严格来说&#xff0c;论文所指的反卷积并不是真正的 deconvolution network 。 关于 deconvolution network 的详细介绍&#xff0c;请参考另一篇博客&#xff1a;什么是Deconvolutional Network&#xff1f; 一、参考资料 Learning Deconvolution Netwo…

【C语言刷题系列】交换两个变量的三种方式

文章目录 1.使用临时变量&#xff08;推荐&#xff09; 2.相加和相减的方式&#xff08;值较大时可能丢失数据&#xff09; 3.按位异或运算 本文所属专栏C语言刷题_倔强的石头106的博客-CSDN博客 两个变量值的交换是编程中最常见的问题之一&#xff0c;以下将介绍三种变量的…

数据结构(1)--> 顺序表

定义&#xff1a; 顺序表存储定义&#xff1a; 把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构&#xff0c;顺序表功能的实现借助于数组&#xff0c;通过对数组进行封装&#xff0c;从而实现增删查改的功能&#xff0c;严格意义上来说&#xff08;数组无法实现…

python在线聊天室(带聊天保存)

python Socket在线聊天室(带聊天保存) 需求功能 1.聊天信息保存功能(服务端会把信息保存到一个txt里面) 2.使用pyqt5框架作为一个可视化界面 3.具备一个服务端和多个客户端的功能 4.具备离线加入黑名单(离线踢出) 5.具备在线加入黑名单(在线加入黑名单被踢出) 6.具备群聊功能…

JasperReports渲染报表文件时候,读取图片报错:Byte data not found at:xxx.png.\r\n\tat

目录【知识星球】 1.1、错误描述 1.2、解决方案 1.1、错误描述 最近在工作中&#xff0c;使用JasperReports报表比较多一些&#xff0c;有次线上环境里面运行报错&#xff0c;查看报错日志&#xff0c;如下所示&#xff1a; net.sf.jasperreports.engine.JRException: Byte…

批量数据之DataX数据同步

文章目录 1 DataX1.1 引言1.2 DataX 简介1.3 核心1.3.1 DataX3.0 框架设计1.3.2 DataX3.0 核心架构 1.4 使用 DataX 实现数据同步1.4.1 准备安装1.4.2 Linux 上安装 DataX 软件1.4.3 DataX 基本使用1.4.4 MySQL 数据库1.4.4.1 安装1.4.4.2 准备同步1.4.4.3 创建存储过程&#x…

第15次修改了可删除可持久保存的前端html备忘录:换了一个容器时钟,匹配背景主题:现代深色

第15次修改了可删除可持久保存的前端html备忘录&#xff1a;换了一个容器时钟&#xff0c;匹配背景主题&#xff1a;现代深色 备忘录代码 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv&qu…

适用于 Windows 的 10 个最佳数据恢复工具学习

在数字时代&#xff0c;数据就是一切。从珍贵的家庭照片和重要的工作文档到最喜欢的音乐和电影&#xff0c;我们的生活越来越多地存储在各种设备上。系统崩溃、意外删除或恶意病毒都可能使您的宝贵数据瞬间消失。这就是数据恢复工具的用武之地。 10 个最佳数据恢复工具 这些软…

【无标题】Gateway API 实践之(五)FSM Gateway 的会话保持功能

网关的会话保持功能是一种网络技术&#xff0c;旨在确保用户的连续请求在一段时间内被定向到同一台后端服务器。这种功能在需要保持用户状态或进行连续交互的场景中特别重要&#xff0c;例如在维护在线购物车、保持用户登录状态或处理多步骤事务时。 会话保持通过提供一致的用…