【Linux篇】面试——用户和组、文件类型、权限、进程
目录
一、权限管理
1. 用户和组
(1)相关概念
(2)用户命令
① useradd(添加新的用户账号)
② userdel(删除帐号)
③ usermod(修改帐号)
④ passwd(用户密码的管理)
(3)组命令
① groupadd(增加一个新的用户组)
② groupdel(删除一个已有的用户组)
③ groupmod(修改用户组的属性)
(4)与用户账号有关的系统文件
① /etc/passwd 文件
② /etc/shadow 文件
③ /etc/group 文件
2. 文件基本属性
(1)文件类型
(2)文件权限
(3)chgrp 更改文件属组
(4)chown 更改文件属性
① 更改文件所有者(owner)、更改文件所属组
② 更改文件 9 个属性
二、进程相关
1. ps(显示进程状态)
(1)显示系统中全部的进程信息
(2)查找当前系统运行状态中指定的进程信息
(3)当前系统运行状态中指定用户的进程信息
2. top(实时显示系统运行状态)
3. kill(杀死进程)
(1)结束某个指定的进程(数字为对应的 PID 值)
(2)强制结束某个指定的进程(数字为对应的 PID 值)
4. netstat(显示网络状态)
(1)显示系统网络状态中的所有连接信息
(2)显示系统网络状态中的 UDP 连接信息
(3)显示系统网络状态中的 UDP 连接端口号使用信息
(4)显示网卡当前状态信息
(5)显示网络路由表状态信息
(6)找到某个服务所对应的连接信息
一、权限管理
1. 用户和组
(1)相关概念
用户 是 Linux 系统 中的一个 账户,代表 一个操作者 或 一个 服务进程。每个用户 都有一个 唯一的 用户名 和 身份标识(UID)。用户 登录系统时,需要 提供 有效的 用户名 和 密码,以 验证其身份。用户根据其身份 可以访问 特定的 文件和资源。
- 文件和目录的 权限设置 决定了 哪些用户 可以读取、写入或执行它们。每个用户 都有 自己的 家目录(如 /home/username),用于 存储 个人文件和配置。这提供了一定程度的隐私和安全隔离。
组 是一组用户的 集合,它 允许 对多个用户 应用相同的 权限设置。通过 将用户 添加到 组中,管理员 可以 轻松地 为组内的 所有用户 设置相同的 文件 和 目录权限。
- 组 可以用来 控制 对共享资源的 访问,如打印机、文件服务器等。组成员 可以 共享 相同的 文件和目录,方便协作 和 数据共享。
- 组 简化了 权限分配 和 管理的 过程。例如,通过 更改 组权限,可以 一次性 更新 组内 所有用户的权限,而不需要 单独 更改每个用户。
- 组策略 可以 限制 对敏感数据的 访问,提高 系统的 安全性。通过 将用户 分配到 不同的组,可以更好地 控制 对敏感资源的 访问。
(2)用户命令
① useradd(添加新的用户账号)
useradd 选项 用户名-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
② userdel(删除帐号)
userdel 选项 用户名-r 把用户的主目录一起删除
③ usermod(修改帐号)
usermod 选项 用户名-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
④ passwd(用户密码的管理)
passwd 选项 用户名-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。默认用户名,则修改当前用户的口令。
(3)组命令
① groupadd(增加一个新的用户组)
groupadd 选项 用户组-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
② groupdel(删除一个已有的用户组)
groupdel 用户组
③ groupmod(修改用户组的属性)
groupmod 选项 用户组-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
(4)与用户账号有关的系统文件
① /etc/passwd 文件
Linux 系统中的 每个用户 都在 /etc/passwd 文件中 有一个 对应的 记录行,它 记录了 这个用户的 一些 基本属性。

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
- 用户标识号:系统内部 用它来 标识用户。通常 用户 标识号的 取值范围是 0~65 535。0 是 超级用户 root 的标识号,1~99 由 系统保留,作为 管理账号,普通用户 的 标识号从 100 开始。在 Linux 系统中,这个 界限是 500。
- 组标识号:记录的是 用户 所属的 用户组。它对应着 /etc/group 文件中的 一条记录。
- 主目录:用户的 起始 工作目录。它是 用户在 登录到 系统之后 所处的 目录。在 大多数系统中,各 用户的 主目录都 被组织在 同一个 特定的 目录下,而 用户 主目录的 名称 就是 该用户的 登录名。各 用户对 自己的 主目录有读、写、执行(搜索)权限,其他用户 对此目录的 访问 权限则 根据 具体情 况设置。
- Shell:用户登录后,要 启动一个进程,负责 将用户的 操作传给 内核,这个 进程是 用户 登录到 系统后 运行的命令 解释器 或 某个特定的 程序。
② /etc/shadow 文件
对 安全性 要求 较高的 Linux 系统都 把加密后的 密码字 分离出来,单独 存放在 一个文件中,这个文件是 /etc/shadow 文件。 有 超级用户 才拥有 该文件 读权限,这就 保证了 用户密码 的安全性。

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- 登录名:是 与 /etc/passwd 文件中的 登录名 相一致的 用户账号。
- 密码字段:存放的是 加密后的 用户 口令字,长度为 13 个 字符。如果 为空,则 对应 用户 没有口令,登录时 不需要 口令;如果 含有 不属于 集合 { ./0-9A-Za-z } 中的 字符,则 对应的 用户 不能登录。
- 最后一次修改时间:表示的是 从某个 时刻起,到 用户最后 一次 修改口令时的 天数。时间 起点 对 不同的 系统可能 不一样。
- 最小时间间隔:指的是 两次 修改口令 之间 所需的 最小天数。
- 最大时间间隔:指的 是口令 保持有效的 最大天数。
- 警告时间:字段 表示的是 从系统 开始 警告用户到 用户密码 正式失效之间的 天数。
- 不活动时间:表示的是 用户 没有登录活动 但账号 仍能保持 有效的 最大天数。
- 失效时间:字段 给出的是一个 绝对的 天数,如果 使用了 这个字段,那么 就给出 相应账号的 生存期。期满后,该账号就不再是一个 合法的账号,也就不能 再用来登录了。
③ /etc/group 文件
将 用户 分组是 Linux 系统中 对用户 进行 管理及控制 访问权限的 一种手段。每个 用户 都属于 某个 用户组;一个 组中 可以有 多个用户,一个 用户 也可以 属于 不同的组。当一个 用户同时是 多个组中的 成员时,在 /etc/passwd 文件中 记录的是 用户所属的主组,也就是 登录时 所属的 默认组,而其他组 称为 附加组。

组名:口令:组标识号:组内用户列表
- 组名:是 用户组的 名称,由 字母或数字 构成。与 /etc/passwd 中的 登录名一样,组名 不应 重复。
- 口令:字段 存放的是 用户组 加密后的 口令字。一般 Linux 系统的 用户组 都没有口令,即 这个字段一般为空,或者是*。
- 组标识号:与 用户标识号 类似,也是一个 整数,被 系统内部 用来 标识组。
- 组内用户列表:是 属于这个组的 所有用户的 列表,不同 用户之间用 逗号(,)分隔。这个 用户组 可能是 用户的主组,也可能是 附加组。
2. 文件基本属性
在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组。


(1)文件类型
- d :目录文件。
- - :文件。
- l :表示为 链接文档(link file)。
- b :表示为 装置文件里面的可供储存的接口设备(可随机存取装置)。
- c :表示为 装置文件里面的 串行端口设备,例如键盘、鼠标(一次性读取装置)。
(2)文件权限
接下来的 字符中,以 三个 为一组,且均为 rwx 的三个参数的 组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。


(3)chgrp 更改文件属组
chgrp [-R] 属组名 文件名-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
(4)chown 更改文件属性
① 更改文件所有者(owner)、更改文件所属组
chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名
② 更改文件 9 个属性
Linux 文件属性有 两种设置方法,一种是数字,一种是符号。Linux 文件的 基本 权限 就有 九个,分别是 owner/group/others(拥有者/组/其他)三种身份 各有 自己的 read/write/execute 权限。
// 数字修改
chmod [-R] xyz 文件或目录xyz : 数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更

二、进程相关
1. ps(显示进程状态)

(1)显示系统中全部的进程信息
ps aux

(2)查找当前系统运行状态中指定的进程信息
ps -ef | grep ssh
// 以ssh为例

(3)当前系统运行状态中指定用户的进程信息

2. top(实时显示系统运行状态)

top -d 5 // 每隔5秒刷新一次信息
top -n 5 // 设定总显示次数为5次,随后自动退出
3. kill(杀死进程)

(1)结束某个指定的进程(数字为对应的 PID 值)
kill 9999
(2)强制结束某个指定的进程(数字为对应的 PID 值)
kilL -9 9999
4. netstat(显示网络状态)

(1)显示系统网络状态中的所有连接信息
netstat -a

(2)显示系统网络状态中的 UDP 连接信息
netstat -nu

(3)显示系统网络状态中的 UDP 连接端口号使用信息
netstat -apu

(4)显示网卡当前状态信息
netstat -i

(5)显示网络路由表状态信息
netstat -r

(6)找到某个服务所对应的连接信息
netstat -ap | grep ssh

相关文章:
【Linux篇】面试——用户和组、文件类型、权限、进程
目录 一、权限管理 1. 用户和组 (1)相关概念 (2)用户命令 ① useradd(添加新的用户账号) ② userdel(删除帐号) ③ usermod(修改帐号) ④ passwd&…...
PET-文件包含
include发生错误报warning,继续执行。require发生错误直接error,不继续执行 无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…...
实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新
pages.json 中的配置 { "path": "pages/message", "style": { "navigationBarTitleText": "消息", "enablePullDownRefresh": true, "onReachBottomDistance": 50 } }, <template><view class…...
PostgreSQL 修改字段类型但是存在视图依赖
其实视图的存在与否在数据库界一直是一个话题。用好视图可以简化程序的很多代码,用不好视图不仅会给维护带来很多的不便,也会造成很大的性能问题。下面我从维护方面给出案例,以及当存在这种问题的时候,如何去解决这个问题。 假设…...
基于.NET 9实现实时进度条功能:前后端完整示例教程
要在基于.NET 9的应用中实现进度条功能,我们可以通过HttpContext.Response来发送实时的进度更新到前端。以下是一个简单的示例,展示了如何在ASP.NET Core应用中实现这一功能。 但是,我在.net framework4.7.2框架下,实际不了HttpC…...
力扣 LeetCode 19. 删除链表的倒数第N个结点(Day2:链表)
解题思路: 快慢指针 class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy new ListNode(-1);dummy.next head;ListNode fast dummy;ListNode slow dummy;for (int i 0; i < n; i) {fast fast.next;}while (fast.ne…...
音频格式转换
一、场景 项目需求需要App实现声纹识别功能,调用科大讯飞接口: 声纹识别 API 文档 | 讯飞开放平台文档中心 其接口要求音频文件格式为mp3 二、问题产生 在安卓端根据官方文档说明,系统并不支持直接录制mp3格式音频,支持格式如…...
npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
文章目录 作用示例常用选项示例命令注意事项 1、实战举例**解决方法**1. **锁定唯一的 types/node 版本**2. **清理依赖并重新安装**3. **设置 tsconfig.json 的 types**4. **验证 Promise 类型支持** **总结** npm list types/node 命令用于列出当前项目中 types/node 包及其…...
【Spring】Spring框架中有有哪些常见的设计模式
Spring 框架中广泛运用了多种设计模式,今天让我们来学习一下 1. 单例模式(Singleton Pattern) 用途:在Spring框架中,Bean默认是单例的,也就是说在容器中每种类型的Bean只有一个实例。这个设计可以节省资源…...
提升百度排名的有效策略与技巧解析
内容概要 提升百度排名对于网站的成功至关重要。首先,了解百度排名的基本原则,掌握搜索引擎是如何评估网页质量的,是优化过程中不可或缺的一部分。搜索引擎越来越倾向于将用户需求放在首位,因此提供高质量的内容和良好的用户体验…...
【Linux】Linux下查看cpu信息指令(top/mpstat/iostat/pidstat)说明
top命令 top(1) - Linux manual page (man7.org) top查看总的CPU利用率 us: 用户空间消耗的CPU资源占比,进程在用户态执行函数调用,编解码消耗的都是us sy: 内核空间消耗的CPU资源占比,进程调用系统调用达到内核后会增加sy的消耗 ni&…...
HDLBIts习题(3):使用冒号表示位宽时,冒号两端必须是常量
(1)易错习题1:Circuits - Combinational Logic - Multiplexers - 256-to-1 4bit multiplexer 使用冒号表示位宽时,冒号两端必须是常量,因此如果使用变量,可以使用位拼接的方法。 (2)…...
C++20协程详解
文章目录 什么是协程为什么需要协程什么时候使用协程协程的类别C20的协程协程的使用关键字co_wait框架一阶段完成数据交换co_yieldco_return 什么是协程 我们在学习编程的过程中,逐渐从单线程,到多线程,再到异步编程和并发处理 这些异步与并…...
Chromium 中chrome.system.display扩展接口定义c++
一、chrome.system.display 使用 system.display API 查询展示元数据。 权限 system.display 类型 ActiveState Chrome 117 及更高版本 用于指示系统是否检测到和使用显示屏的枚举。如果系统未检测到显示屏(可能断开连接,或因睡眠模式等原因而被视…...
容器docker的ulimit
Ulimit 在linux里ulimit命令可以对shell生成的进程的资源进行限制。 常用的ulimit限制 打开文件句柄数core文件大小设置进程能够消耗的虚拟内存设置用户能够打开的进程数目 不太常用的ulimit限制 设置数据段的最大值.单位:kbytes 设置创建文件的最大值.单位:blocks 设置在…...
一、HTML
一、基础概念 1、浏览器相关知识 这五个浏览器市场份额都非常大,且都有自己的内核。 什么是内核: 内核是浏览器的核心,用于处理浏览器所得到的各种资源。 例如,服务器发送图片、视频、音频的资源,浏览…...
使用Geekbench6软件对真实和虚拟的苹果桌面系统(macOS)进行打分比较
前言 感觉VMWare安装的MacOS使用起来非常的慢,所以特意用打分软件GeekBench进行了评测。 一、Geekbench的安装 可以从官网直接进行下载, 链接是: 二、Geekbench的直接使用 2.1、真机的信息 2.2、虚拟机的信息 三、打分的比较 3.1、真机…...
lua入门教程:随机数
在Lua中,生成随机数是通过math库中的math.random函数来实现的。这个函数可以生成一个[0, 1)区间内的随机浮点数。如果你需要生成其他范围内的随机数,或者需要整数类型的随机数,可以通过一些简单的数学运算来调整math.random的输出。 以下是如…...
华为大咖说 | 浅谈智能运维技术
本文分享自华为云社区:华为大咖说 | 浅谈智能运维技术-云社区-华为云 本文作者:李文轩 ( 华为智能运维专家 ) 全文约2695字,阅读约需8分钟 在大数据、人工智能等新兴技术的加持下,智能运维(AI…...
creo toolkit二次开发学习之获取任意选择模型作为元件,并进行获取约束等
获取任意选择模型作为元件进行操作前,先了解组件路径和程序集的构成:creo toolkit二次开发学习之程序集(ProAsmcomp)和装配体组件路径对象(ProAsmcomppath)-CSDN博客 代码如下 ProError test1() {ProError…...
JetBrains IDE试用期重置终极指南:三步轻松恢复30天试用
JetBrains IDE试用期重置终极指南:三步轻松恢复30天试用 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾因JetBrains IDE试用期到期而苦恼?ide-eval-resetter正是解决这一痛点的终…...
SAM一键分割后,如何把每个对象单独存成PNG?一个for循环搞定(含透明背景处理技巧)
SAM分割结果高效保存指南:透明背景PNG与批量处理实战当你用Segment Anything Model(SAM)完成图像分割后,面对屏幕上密密麻麻的mask轮廓,最迫切的需求可能就是把这些分割对象一个个保存为独立文件。本文将从实际工程角度…...
别再为DBSCAN调参发愁了!用Python的sklearn轻松上手OPTICS聚类(附实战代码)
用OPTICS算法告别DBSCAN调参噩梦:Python实战全解析当面对不规则形状或密度不均的数据集时,密度聚类算法往往能大显身手。DBSCAN作为其中最著名的代表,却让无数数据科学家又爱又恨——它的表现极度依赖两个关键参数ε和MinPts的选择࿰…...
机器学习辅助第一性原理:高精度计算电化学氧化还原电位
1. 项目概述:当机器学习遇上第一性原理,破解电化学模拟的精度瓶颈在电化学、材料科学和计算化学的交叉领域,预测一个分子或离子在溶液中的氧化还原电位,就像试图在暴风雨中测量一滴雨滴的精确落点。这个数值,直接决定了…...
Godot中文离线文档本地构建全指南
1. 为什么你下载的“Godot中文文档”总在关键时刻打不开?我第一次在客户现场调试一个嵌入式Godot游戏时,笔记本突然断网——不是Wi-Fi掉线,是整个厂区网络策略限制,所有外网HTTP/HTTPS请求被拦截。当时我正卡在一个Node2D.set_glo…...
条件期望与奇异值分解:概率论与矩阵分析中的最优逼近原理
1. 项目概述:连接概率与矩阵的数学桥梁在数据科学和机器学习的日常工作中,我们常常在两个看似独立的数学世界里穿梭:一个是处理不确定性和随机性的概率论,另一个是处理高维数据和线性结构的矩阵分析。很多从业者可能熟悉主成分分析…...
CSS Animations实战指南:打造流畅的用户体验
CSS Animations实战指南:打造流畅的用户体验 引言 CSS Animations是创建流畅动画效果的强大工具,无需JavaScript即可实现丰富的视觉效果。本文将深入探讨CSS动画的核心概念、实用技巧和最佳实践。 一、CSS动画基础 1.1 keyframes定义动画 keyframes slid…...
多任务学习优化文档级机器翻译:源语句重建与上下文重建策略对比
1. 项目概述:当翻译需要“瞻前顾后”在机器翻译领域,我们早已告别了那个逐字逐句、生硬拼接的时代。基于Transformer架构的神经机器翻译(NMT)模型,凭借其强大的序列建模能力,已经能够产出相当流畅、准确的句…...
AI与PDCA循环融合:构建韧性医院物流系统的实践指南
1. 项目概述:当医院物流遇上AI与PDCA在医院这个庞大而精密的系统里,物流的顺畅与否,直接关系到患者的生命安全和医疗服务的质量。想象一下,一台急诊手术因为某个关键耗材在仓库里“迷路”而推迟,或者一个重症病房因为药…...
实战指南:用Python和PyTorch一步步搭建TFT模型,搞定电力负荷多步预测
实战指南:用Python和PyTorch一步步搭建TFT模型,搞定电力负荷多步预测 电力负荷预测是能源管理系统的核心环节,准确的多步预测能帮助电网运营商优化发电计划、降低运营成本。传统统计方法如ARIMA在处理复杂非线性关系时表现有限,而…...
