【Linux】用户权限管理:创建受限用户并配置特定目录访问权限
本文详细介绍了如何在 Linux 系统中创建一个名为 agent 的新用户,并限制其在特定目录下的权限。通过使用 useradd 命令创建用户,并使用 usermod 命令将新用户添加到现有用户组中,确保其具有适当的权限。接着,通过 chown 和 chmod 命令配置目标目录 /home/yourname/_Project/oh_workspace 的权限,使 agent 用户在该目录下具有读写权限,而在其他目录下只能读取。
为了进一步细化权限控制,文章还介绍了如何使用 ACL(访问控制列表)来限制 agent 用户的写权限,确保其在根目录、/home 目录和 /home/yourname 目录下只能读取。最后,通过复制 .bashrc 文件和更改默认 shell 为 bash,确保 agent 用户获得与主用户相似的使用体验。
本文适合需要对 Linux 系统进行细粒度权限管理的用户,特别是那些希望在特定目录下限制用户访问权限的场景。

第一步:创建用户并且限制权限
创建一个新用户 agent,并确保其只能在 /home/yourname/_Project/oh_workspace 目录下进行写操作,同时在其他地方只能读取。这确保了系统的安全和灵活性,同时满足了特定的权限要求。
1. 创建用户 agent
sudo useradd -m agent
为 agent 设置密码:
sudo passwd agent
2. 将 agent 添加到 yourname 所属的组
根据你之前的输出,yourname 属于多个组。我们将 agent 添加到这些组中,使其拥有与 yourname 类似的权限。
sudo usermod -aG adm,tty,cdrom,sudo,dip,video,plugdev,users,lpadmin,ollama,docker agent
3. 配置 /home/yourname/_Project/oh_workspace 目录的权限
让 agent 能够在 /home/yourname/_Project/oh_workspace 目录下进行读写操作。
-
设置目录的所有者为
yourname,组为yourname:sudo chown -R yourname:yourname /home/yourname/_Project/oh_workspace -
赋予目录的组用户(包括
agent)读写权限:sudo chmod -R 775 /home/yourname/_Project/oh_workspace
4. 使用 ACL 限制 agent 的写权限
为了确保 agent 只能在 /home/yourname/_Project/oh_workspace 目录下写入,而在其他地方只能读取,我们使用 ACL 进行更细粒度的权限控制。
-
确保
agent对/home/yourname/_Project/oh_workspace目录具有读写执行权限:sudo setfacl -m u:agent:rwx /home/yourname/_Project/oh_workspace -
确保
agent在/home/yourname目录只能读取,不能写入:sudo setfacl -m u:agent:rx /home/yourname sudo setfacl -m d:u:agent:rx /home/yourname这个命令表示
agent可以读取和进入/home/yourname,但不能写入。 -
确保
agent在根目录/下也只能读取,不能写入:sudo setfacl -m u:agent:rx / -
确保
agent在/home目录下也只能读取,不能写入:sudo setfacl -m u:agent:rx /home
5. 测试权限
切换到 agent 用户,测试在 /home/yourname/_Project/oh_workspace 下是否可以写入,而在其他地方不能写入。
-
切换到
agent用户:su - agent -
测试在
/home/yourname/_Project/oh_workspace目录下创建文件:cd /home/yourname/_Project/oh_workspace touch testfile如果可以创建文件,则设置成功。
-
测试在其他目录(如
/和/home/yourname)是否可以创建文件:cd / touch testfile # 应该返回权限错误cd /home/yourname touch testfile # 应该返回权限错误
第二步:确保agent用户能够进入yourname用户的文件夹
为了确保 agent 用户可以访问 /home/yourname/_Project/oh_workspace 目录,但只能在该目录下进行写操作,而在其他目录只能读取,以下是详细的步骤来修复权限问题。
1. 确保 agent 有权限访问 /home/yourname 和 /home/yourname/_Project
即使你已经为 /home/yourname/_Project/oh_workspace 设置了权限,agent 仍然需要读取和执行(进入)的权限才能导航到这个目录。你需要确保 agent 用户对上级目录 /home/yourname 和 /home/yourname/_Project 具有读取和执行权限。
设置 /home/yourname 的权限:
sudo chmod o+rx /home/yourname
这条命令给予其他用户(包括 agent)对 /home/yourname 目录的读取和执行权限,允许他们进入该目录。
设置 /home/yourname/_Project 的权限:
sudo chmod o+rx /home/yourname/_Project
同样,这条命令允许 agent 进入 /home/yourname/_Project 目录。
2. 确保 agent 对 /home/yourname/_Project/oh_workspace 具有读写权限
现在再次确保 agent 对目标目录 /home/yourname/_Project/oh_workspace 具有读写权限:
sudo setfacl -m u:agent:rwx /home/yourname/_Project/oh_workspace
这条命令确保 agent 可以在该目录下读、写和执行(进入目录)。
3. 测试
重新切换到 agent 用户并测试:
su - agent
cd /home/yourname/_Project/oh_workspace
如果这次可以正常进入该目录,说明权限问题已经解决。
测试创建文件:
touch testfile
如果能成功创建文件,说明 agent 在该目录下具备读写权限。
测试在其他目录是否禁止写入:
cd /
touch testfile
# 应该收到权限错误cd /home/yourname
touch testfile
# 应该收到权限错误
第三步:把yourname用户的.bashrc复制过去确保获得和主用户相同的使用体验
sudo cp /home/yourname/.bashrc /home/agent/.bashrc
sudo chown agent:agent /home/agent/.bashrc
第四步:把agent的默认shell改成bash
sudo chsh -s /bin/bash agent
第五步:重新登录agent
su - agent
如果没有显示,尝试重新激活conda
source /home/yourname/anaconda3/etc/profile.d/conda.sh
conda activate base
相关文章:
【Linux】用户权限管理:创建受限用户并配置特定目录访问权限
本文详细介绍了如何在 Linux 系统中创建一个名为 agent 的新用户,并限制其在特定目录下的权限。通过使用 useradd 命令创建用户,并使用 usermod 命令将新用户添加到现有用户组中,确保其具有适当的权限。接着,通过 chown 和 chmod …...
pgsql表分区和表分片设计
在设计 PostgreSQL 表分区和表分片时,主要目标是提高查询性能、可扩展性和数据管理的效率。以下是一些关键的设计步骤和策略: 1. 分区策略 水平分片:选择按日期进行水平分片,每天一个分片。这种策略适用于具有时间序列数据的场景…...
灵动AI ——视频创作新引擎 开启视觉奇幻之旅
灵动AI视频官网地址:https://aigc.genceai.com/ 灵动AI 科技与艺术的完美融合之作。它代表着当下最前沿的影像技术,为我们带来前所未有的视觉盛宴。...
AI设计、作图、画画工具哪个好用?看完这篇你就知道怎么选了
Stable Diffusion Stable Diffusion 是由 Stability AI 推出的开源 AI 文本到图像生成模型,以其开放性和灵活性在 AI 视觉工具领域广受欢迎。与 DALL-E 或 Midjourney 等只能依赖云计算的工具不同,Stable Diffusion 支持本地运行,也广泛兼容多…...
【python ASR】win11-从0到1使用funasr实现本地离线音频转文本
文章目录 前言一、前提条件安装环境Python 安装安装依赖,使用工业预训练模型最后安装 - torch1. 安装前查看显卡支持的最高CUDA的版本,以便下载torch 对应的版本的安装包。torch 中的CUDA版本要低于显卡最高的CUDA版本。2. 前往网站下载[Pytorch](https://pytorch.o…...
myqld二进制安装和破解数据库密码(linux)
安装和基本配置 1.首先把下载下来的mysql安装包放到本地这里下载的是5.7版本为演示 1)解压 tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local -把安装包解压到/usr/local cd /usr/local …...
防重方案-订单防重方案笔记
订单防重设计 订单重复提交概念解决方案前端防重机制后端防重机制利用Token机制基于数据库的唯一索引 Token机制方案介绍 其他 订单重复提交概念 重复提交指,连点按钮进行重复提交操作,不包括刷新后的重新下单,重新下单已非同一订单的概念。…...
HTML、JavaScript和CSS实现注册页面设计
目录 一、实现要求 二、实现页面图 1、注册页面 2.用户ID、用户名、口令验证成功后显示页面 三、用户ID、用户名、口令、确定口令验证逻辑js代码 1、验证用户ID 2、验证用户名 3、验证口令密码 四、总结 五、代码仓库 一、实现要求 综合使用HTML、JavaScript和CSS进…...
Counter对象的使用样例
1. Counter类的定义和功能说明 Counter是一个用于跟踪值出现次数的有序集合。它可以接收一个可迭代对象作为参数,并生成一个字典,其中包含每个元素作为键,其计数作为值。 2. 统计列表或字符串中元素的出现次数 示例代码: from…...
大模型中的token是什么;常见大语言模型的 token 情况
目录 大模型中的token是什么 常见大语言模型的 token 情况 大模型中的token是什么 定义 在大模型中,token 是文本处理的基本单位。它可以是一个字、一个词,或者是其他被模型定义的语言单元。简单来说,模型在理解和生成文本时,不是以完整的句子或段落为单位进行一次性处理…...
Python小白学习教程从入门到入坑------第十七课 内置函数拆包(语法基础)
一、内置函数 1.1 查看所有内置函数 内置函数:Python 提供了许多内置函数,这些函数无需导入任何模块即可直接使用。它们涵盖了各种用途,从数学运算到类型检查,再到输入输出操作等。 如何查看内置函数呢? 在Pycharm…...
动态规划 —— 路径问题-最小路径和
1. 最小路径和 题目链接: 64. 最小路径和 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-path-sum/description/ 2. 算法原理 状态表示:以莫一个位置位置为结尾 dp[i,j]表示:到达[i,j…...
《链表篇》---删除链表的倒数第N个节点(中等)
题目传送门 方法一:计算链表长度(迭代) 1.计算链表长度,并且定义哑节点链接链表。 2.从哑节点开始前进length-n次。即为被删除节点的前置节点。 3.进行删除操作。 4.返回哑节点的后置节点 class Solution {public ListNode remo…...
duilib 进阶 之 TileListBox 列表
目录 一、TileListBox 1、样式 1)、整体列表分列设置 2)、列表项样式设置 3)、选中后出现√号,horver时 出现边框色 的实例 2、代码 1)、普通动态添加列表项 2)、列表项样式中有自定义控件时 3)、获得选中项 一、TileListBox Tile [taɪl] ,瓦片 棋子 Ti…...
Web应用安全—信息泄露
从书本和网上了解到Web应用安全的信息泄露的知识,今天跟大家分享点。 robots.txt泄漏敏感信息 漏洞描述:搜索引擎可以通过robots文件可以获知哪些页面可以爬取,哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范,…...
大数据治理:策略、技术与挑战
随着信息技术的飞速发展,大数据已经成为现代企业运营和决策的重要基础。然而,大数据的复杂性、多样性和规模性给数据管理带来了前所未有的挑战。因此,大数据治理应运而生,成为确保数据质量、合规性、安全性和可用性的关键手段。本…...
vscode插件-08 Golang
文章目录 Go安装其他必须软件 Go Go语言环境,只需安装这一个插件。然后通过vscode命令下载安装其他go环境需要的内容。 程序调试,需要创建.vscode文件夹并编写launch.json文件。 安装其他必须软件 ctrlshiftp,调出命令面板,输入…...
数据结构+算法分析与设计[15-18真题版]
2015年考试试题 一、给出数组A[3..8,2..6]0F integer,当它在内存中按行存放和按列存放时,分别写出元素A[i,j]的地址计算公式(设每个元素占两个存储单元)。(10分) 二、已知一棵二叉树的中序序列的结果是BDCEAFHG,后序序列的结果是DECBHGFA,试画出这棵二叉树。(10分…...
单链表OJ题(2):反转链表(三指针法)、找中间节点(快慢指针)
目录 1.反转链表 反转链表总结: 2.链表的中间节点(快慢指针法) 快慢指针法总结 1.反转链表 在这道题中,我们需要把一个单链表反转它们的指向,这里,我们给出了一个好理解的简单解法,就是用三…...
Rows 行
Goto Data Grid 数据网格 Rows 行...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
