Linux用户、用户组和文件权限的管理与实践
目录
- 一、Linux用户、用户组和文件权限的基础概念与作用
- 1.1 Linux用户的概念与作用
- 1.2 Linux用户组的概念与作用
- 1.3 Linux文件权限的概念与作用
- 二、Linux用户、用户组和文件权限的具体操作实践
- 2.1 创建新用户:从零开始构建用户体系
- 2.2 修改用户和用户组属性:精细掌控权限与身份
- 2.2.1 修改用户属性
- 2.2.2 修改用户组属性
- 2.3 删除用户和用户组:释放资源与空间
- 2.3.1 删除用户
- 2.3.2 删除用户组
- 2.4 访问控制列表与chmod操作:精细掌控文件权限
- 2.4.1 设置文件和目录的访问控制列表(ACL)
- 2.4.2 使用chmod命令更改文件权限
- 2.5 文件和目录的所有权、访问控制与备份策略:确保数据安全与完整
- 2.5.1 控制文件和目录的所有权
- 2.6 使用sudo提升权限:以管理员身份执行命令
- 2.7 使用ssh进行远程登录:安全访问远程服务器
- 2.8 使用sftp进行文件传输:安全传输文件与目录
- 三、使用图形界面管理器进行Linux用户、用户组和文件权限的管理
在Linux系统中,用户、用户组和文件权限的管理不仅关乎系统的安全性和稳定性,也直接影响到多用户环境下的工作效率。本文将通过详细的实战举例,对Linux用户、用户组和文件权限的所有操作进行深入探讨,旨在帮助读者熟练掌握相关工具和方法,更好地管理Linux系统。
一、Linux用户、用户组和文件权限的基础概念与作用
1.1 Linux用户的概念与作用
在Linux系统中,用户是指有权访问和操作系统的具有一定权限的实体。这些实体可以是人、程序或其他系统。
用户在Linux中主要有两个作用:
- 权限管理:Linux系统中的用户和权限是紧密相连的。每个用户都有对特定文件或目录的访问权限,这可以保护系统中的重要文件和目录不被误操作或恶意修改。同时,用户可以根据不同的权限设置,对不同的文件或目录进行不同的操作,例如读取、写入和执行等。
- 身份认证:Linux系统通过用户名和密码的身份认证方式,确认用户是否具有访问系统资源的权限。用户在登录系统时,需要输入正确的用户名和密码,只有在身份认证通过后,用户才能获得访问系统资源的权限。
Linux中的用户可以分为三种类型:
- 管理员:在Linux中,管理员是拥有所有权限的用户,通常只有一名,即root用户。root用户可以执行系统中的任何命令,对所有文件和目录进行操作,拥有对系统的完全控制权。
- 普通用户:普通用户具有对系统的一般权限,可以进行日常的文件和目录操作,但不能执行管理员权限的操作。
- 系统用户:系统用户主要是为了保障系统的正常运行而创建的,通常没有登录系统的权限,也不具有管理员权限。
1.2 Linux用户组的概念与作用
在Linux中,用户组是一个非常重要的概念,它是一个具有相同特征用户的逻辑集合。
用户组的主要作用是简化和方便系统管理员对用户进行管理以及权限的划分。例如,如果需要开放给多个用户访问某个文件的权限,一种方法是分别给每个用户授权,但当用户数量成百上千时,这种方法会变得非常繁琐。另一种方法就是创建一个用户组,将所有需要访问该文件的用户放入这个组中,然后给这个组授权,这样,组内的所有用户就拥有了相同的权限。
此外,通过定义用户组,还可以在很大程度上简化了对用户的管理工作。
在Linux系统中,用户组可以分为私有用户组和普通用户组。当我们创建一个用户时,如果没有指定用户所属的用户组,就会自动创建一个同名的私有用户组。当有其他用户加入这个组时,私有用户组就会变成普通用户组。
因此,用户组的提出,极大简化了Linux管理用户的难度,使得Linux对用户的管理以及权限划分更加容易便捷。
1.3 Linux文件权限的概念与作用
在Linux系统中,文件权限是保护文件和目录安全的重要机制之一。文件权限决定了特定用户在特定文件或目录上的访问权限,包括读取、写入、执行等操作。
文件权限可以从以下三个不同的角度来设定:
1.只允许用户自己访问:这种权限设置可以防止其他用户访问特定的文件或目录。
2.允许一个预先指定的用户组中的用户访问:这种权限设置可以控制一组特定的用户对文件或目录的访问权限。
3.允许系统中的任何用户访问:这种权限设置可以使任何用户都能够访问特定的文件或目录。
二、Linux用户、用户组和文件权限的具体操作实践
2.1 创建新用户:从零开始构建用户体系
在Linux中,可以使用adduser命令创建新用户。以下是一个创建名为“alice”的新用户的示例:
sudo adduser alice
该命令将引导你设置用户的密码、家目录等基本信息。完成后,新用户“alice”就创建成功了。
2.2 修改用户和用户组属性:精细掌控权限与身份
2.2.1 修改用户属性
要修改用户的基本属性,如密码、家目录等,可以使用usermod命令。例如,要更改用户“alice”的密码,可以执行以下命令:
sudo usermod -p $(openssl passwd -new) alice
2.2.2 修改用户组属性
要修改用户组的属性,如组名称、组成员等,可以使用groupmod命令。例如,要更改组名称为“developers”的用户组为“team1”,可以执行以下命令:
sudo groupmod -n team1 developers
2.3 删除用户和用户组:释放资源与空间
2.3.1 删除用户
要删除一个用户,可以使用userdel命令。例如,要删除名为“bob”的用户,可以执行以下命令:
sudo userdel bob
2.3.2 删除用户组
要删除一个用户组,可以使用groupdel命令。例如,要删除名为“team1”的用户组,可以执行以下命令:
sudo groupdel team1
2.4 访问控制列表与chmod操作:精细掌控文件权限
2.4.1 设置文件和目录的访问控制列表(ACL)
在Linux中,可以使用ACL来为文件和目录设置额外的访问权限。要设置ACL,可以使用setfacl命令。例如,要为所有用户设置对文件“example.txt”的读取权限,可以执行以下命令:
sudo setfacl -m u::r example.txt
2.4.2 使用chmod命令更改文件权限
要更改文件或目录的权限,可以使用chmod命令。例如,要为所有用户设置对目录“project”的读取和执行权限,可以执行以下命令:
sudo chmod -R o+rX project/ # -R 以递归方式设置权限, o+rX 表示为其他用户添加读取和执行权限
2.5 文件和目录的所有权、访问控制与备份策略:确保数据安全与完整
2.5.1 控制文件和目录的所有权
要更改文件或目录的所有者,可以使用chown命令。例如,要将文件“example.txt”的所有者更改为“alice”,可以执行以下命令:
sudo chown alice example.txt # chown alice example.txt 更改文件的所有者为 alice
2.6 使用sudo提升权限:以管理员身份执行命令
在Linux中,可以使用sudo命令以管理员身份执行命令。例如,要以管理员身份执行命令“ls -l /root”,可以执行以下命令:
sudo ls -l /root
2.7 使用ssh进行远程登录:安全访问远程服务器
在Linux中,可以使用ssh命令进行远程登录。例如,要远程登录到IP地址为192.168.0.100的服务器,可以使用以下命令:
ssh username@192.168.0.100
其中,“username”是远程服务器的用户名。
2.8 使用sftp进行文件传输:安全传输文件与目录
在Linux中,可以使用sftp命令进行文件传输。例如,要从本地计算机上传文件“example.txt”到远程服务器,可以使用以下命令:
sftp username@192.168.0.100 << EOF
put example.txt
bye
EOF
其中,“username”是远程服务器的用户名。
三、使用图形界面管理器进行Linux用户、用户组和文件权限的管理
对于不熟悉命令行工具的读者,可以使用图形界面管理器进行Linux用户、用户组和文件权限的管理。以下是一些常用的图形界面管理器:
- GNOME桌面环境:在GNOME桌面环境中,可以通过“系统”->“管理”->“用户和组”来管理用户和用户组,通过“系统”->“管理”->“文件管理器”来管理文件权限。
- KDE桌面环境:在KDE桌面环境中,可以通过“系统”->“设置”->“用户和组”来管理用户和用户组,通过“系统”->“设置”->“文件权限”来管理文件权限。
- Ubuntu的Unity桌面环境:在Unity桌面环境中,可以通过“设置”->“账户”来管理用户和用户组,通过“设置”->“文件”来管理文件权限。
- GNOME Shell桌面环境:在GNOME Shell桌面环境中,可以通过“控制中心”->“用户和群组”来管理用户和用户组,通过“控制中心”->“文件管理器”来管理文件权限。
点赞收藏,富婆包养✋✋
相关文章:
Linux用户、用户组和文件权限的管理与实践
目录 一、Linux用户、用户组和文件权限的基础概念与作用1.1 Linux用户的概念与作用1.2 Linux用户组的概念与作用1.3 Linux文件权限的概念与作用 二、Linux用户、用户组和文件权限的具体操作实践2.1 创建新用户:从零开始构建用户体系2.2 修改用户和用户组属性&#x…...
【CMU15-445 Part-14】Query Planning Optimization I
Part14-Query Planning & Optimization I SQL is Declarative,只告诉想要什么而不需要说怎么做。 IBM System R是第一个实现query optimizer查询优化器的系统 Heuristics / Rules 条件触发 静态规则,重写query来remove 低效或者愚蠢的东西…...
七、垃圾收集中级
JVM由浅入深系列 JVM由浅入深系列一、关于Java性能的误解二、Java性能概述三、了解JVM概述四、探索JVM架构五、垃圾收集基础六、HotSpot中的垃圾收集七、垃圾收集中级八、垃圾收集高级👋垃圾收集中级 ⚽️1. 权衡收集器插件 就 Java 平台而言,有一点可能初学者未必能马上意…...
el-menu 导航栏学习(1)
最简单的导航栏学习跳转实例效果: (1)index.js路由配置: import Vue from vue import Router from vue-router import NavMenuDemo from /components/NavMenuDemo import test1 from /components/test1 import test2 from /c…...
Axios请求封装
安装axios,在net文件下新建index.js,封装InternalPsot请求: function internalPost(url,data,header,success,failure,errordefaultError()){axios.post(url,data,{headers:header}).then(({data})>{if (data.code200){success(data.dat…...
Pikachu靶场——XXE 漏洞
文章目录 1. XXE1.1 查看系统文件内容1.2 查看PHP源代码1.3 查看开放端口1.4 探测内网主机 1. XXE 漏洞描述 XXE(XML External Entity)攻击是一种利用XML解析器漏洞的攻击。在这种攻击中,攻击者通过在XML文件中插入恶意实体来触发解析器加载…...
vscode登录租的新服务器
1.connect to…… 选择 connect current window to host 2.configure SSH Host 选择本地配置文件 打开配置文件,把主机名端口号写进去 再返回vscode远程登录页面,左侧栏就会出现这个主机名了。...
Verilog参数定义与仿真模块中的参数修改
文章目录 参数方式定义参数的优势rtl模块中的参数定义模块名后定义参数parameter定义参数 仿真模块中的参数修改例化时修改defparam修改 总结与说明附录:测试代码 参数方式定义参数的优势 当一个模块被另一个模块引用例化时,高层模块可以对低层模块的参…...
Android studio升级Giraffe | 2022.3.1 Patch 1踩坑
这里写自定义目录标题 not "opens java.io" to unnamed module错误报错信息解决 superclass access check failed: class butterknife.compiler.ButterKnifeProcessor$RScanner报错报错信息解决 Android studio升级Giraffe | 2022.3.1 Patch 1后,出现项目…...
使用U3D、pico开发VR(二)——添加手柄摇杆控制移动
一、将unity 与visual studio 相关联 1.Edit->Preference->External tool 选择相应的版本 二、手柄遥控人物转向和人物移动 1.添加Locomotion System组件 选择XR Origin; 2.添加Continuous Move Provider(Action-based)组件 1>…...
【FPGA项目】图像采集及显示(2)详细设计方案
目录 前言 一、视频流采集设计 二、DDR3缓存控制 三、FIFO 设计 四、VGA显示器驱动设计...
查找排序部分习题 242. 有效的字母异位词 74. 搜索二维矩阵 1. 两数之和 167.两数之和 II
242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 class Solution(object):def isAnagram(self, s, t):""…...
MATLAB算法实战应用案例精讲-【优化算法】冠状病毒优化算法(COVIDOA)(附MATLAB代码实现)
目录 前言 知识储备 1 冠状病毒群体免疫优化算法...
React查询、搜索类功能的实现
React查询、搜索类功能的实现 查询之类的如果是通过向列表接口中发送对应参数来查询的,那么在默认输出时,在useEffect钩子中的请求中可以先为需要查询的请求参数设初始的state,也就是null或者未定义,这样的话初始请求的还是整个列…...
k8s搭建EFK日志系统
搭建 EFK 日志系统 前面大家介绍了 Kubernetes 集群中的几种日志收集方案,Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。 Elasticsearch 是一个实…...
LuatOS-SOC接口文档(air780E)-- fonts - 字体库
fonts.list(tp) 返回固件支持的字体列表 参数 传入值类型 解释 string 类型, 默认 u8g2, 还可以是lvgl 返回值 返回值类型 解释 table 字体列表 例子 -- API新增于2022-07-12 if fonts.list thenlog.info("fonts", "u8g2", json.encode(fonts…...
[Java·算法·困难]LeetCode124.二叉树中的最大路径和
每天一题,防止痴呆 题目示例分析思路1题解1 👉️ 力扣原文 题目 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经…...
【微服务保护】
文章目录 Sentinel流量控制流控模式流控效果 隔离和降级线程隔离熔断降级 授权规则和规则持久化 微服务雪崩问题: 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。服务D有 故障进而导致服务A有故障,进而导…...
【MATLAB第78期】基于MATLAB的VMD-SSA-LSTM麻雀算法优化LSTM时间序列预测模型
【MATLAB第78期】基于MATLAB的VMD-SSA-LSTM麻雀算法优化LSTM时间序列预测模型 一、LSTM data xlsread(数据集.xlsx);% [x,y]data_process(data,15);%前15个时刻 预测下一个时刻 %归一化 [xs,mappingx]mapminmax(x,0,1);xxs; [ys,mappingy]mapminmax(y,0,1);yys; %划分数据 n…...
分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测
分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测 目录 分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
