当前位置: 首页 > article >正文

Shell核心基础命令(下)——系统与权限操作

Shell核心基础命令下——系统与权限操作前言在Linux系统中权限管理是系统安全的基石。作为多用户多任务操作系统Linux通过精细的用户-组-权限模型来控制对系统资源的访问。本文将深入讲解Shell中与系统权限相关的核心命令包括用户管理、组管理以及文件权限控制帮助你掌握Linux系统管理的核心技能。一、理解Linux权限模型在深入命令之前我们需要理解Linux的三层权限架构用户User系统的使用者每个用户拥有唯一的UID组Group用户的集合用于批量管理权限每个组拥有唯一的GID其他Others系统中除文件所有者和所属组之外的所有用户每个文件或目录都关联着所有者Owner、所属组Group、其他用户Others三类权限。二、用户管理命令1. 查看当前用户# 查看当前登录用户名whoami# 查看当前登录用户的详细信息idusername# 查看当前登录的所有用户whow# 查看登录历史lastid命令可以显示用户的UID、GID以及所属的所有组是验证用户信息的利器。2. 用户创建与删除# 创建新用户带主目录和指定shellsudouseradd-m-s/bin/bash username# 设置用户密码sudopasswdusername# 删除用户-r 同时删除家目录和邮件池sudouserdel-rusername注意使用userdel -r前务必确认该用户的所有数据不再需要建议先执行find / -user username查找该用户所有文件。3. 修改用户属性usermodusermod是用户管理的瑞士军刀常用选项包括# 修改用户名sudousermod-lnewname oldname# 修改UIDsudousermod-u2001username# 修改主组sudousermod-gdevelopers username# 添加到附加组-a 表示追加不覆盖现有组sudousermod-aGdocker,sudo username# 修改家目录并移动文件sudousermod-d/home/newhome-musername# 修改登录shellsudousermod-s/bin/zsh username# 锁定/解锁用户密码sudousermod-Lusername# 锁定sudousermod-Uusername# 解锁重要提示使用-G而不加-a会替换所有附加组这是常见的操作失误务必使用-aG来追加组。三、组管理命令Linux通过组来简化权限管理。将权限分配给组再将用户加入组比单独为每个用户授权更高效。1. 组的类型主组Primary Group用户创建时自动建立与用户名同名用户创建的文件默认属于此组附加组Secondary Group用户可属于多个附加组获得额外的权限2. 组管理基本命令# 创建新组sudogroupadddevelopers# 创建组并指定GIDsudogroupadd-g600mygroup# 修改组名sudogroupmod-nnewname oldname# 修改组GIDsudogroupmod-g700mygroup# 删除组sudogroupdelmygroup# 查看用户所属组groupsusername# 查看系统所有组cat/etc/group# 查看组密码信息需要root权限cat/etc/gshadow3. 组成员管理# 添加用户到组gpasswd方式sudogpasswd-ausername groupname# 从组中移除用户sudogpasswd-dusername groupname# 批量设置组成员会替换现有成员sudogpasswd-Muser1,user2,user3 groupname# 设置组管理员sudogpasswd-Aadminuser groupname# 设置组密码sudogpasswd groupname4. 组文件检查# 检查组文件完整性grpck# 转换为shadow组格式提升安全性grpconv四、文件权限管理1. 查看权限ls -lls-lfilename# 输出示例-rwxr-xr-x 1 user group 1234 Jan 1 12:00 filename权限位解析第1位文件类型-文件d目录l链接第2-4位所有者权限rwx第5-7位组权限rwx第8-10位其他用户权限rwx2. chmod修改文件权限chmod支持两种表示法符号法和数字法。符号表示法chmodux file.txt# 给所有者添加执行权限chmodg-w file.txt# 移除组的写权限chmodor file.txt# 设置其他用户为只读chmodax script.sh# 给所有用户添加执行权限chmodurwx,grx,or file.txt# 组合设置数字表示法更常用# 权限数值r4, w2, x1chmod755file.txt# rwxr-xr-xchmod644file.txt# rw-r--r--chmod700private.key# rwx------仅所有者chmod777shared.txt# rwxrwxrwx不推荐常用权限组合755目录和可执行文件的标准权限644普通文件的标准权限600敏感配置文件如SSH私钥777极度危险任何人可修改执行3. chown修改文件所有者# 修改所有者sudochownnewuser file.txt# 同时修改所有者和组sudochownnewuser:newgroup file.txt# 仅修改组效果同chgrpsudochown:newgroup file.txt# 递归修改目录sudochown-Ruser:group /path/to/dir# 参考其他文件的所有者sudochown--referenceref.txt target.txt注意只有root用户可以使用chown这是为了防止用户绕过磁盘配额和伪造文件归属。4. chgrp修改文件所属组# 修改文件所属组sudochgrpdevelopers file.txt# 递归修改sudochgrp-Rdevelopers /path/to/dir# 用户可以将文件改为自己所属的组无需sudochgrpmygroup file.txt# 如果当前用户属于mygroup五、特殊权限位Linux还有三个特殊权限位位于传统rwx之前1. SUIDSet User ID- 4000chmodus /usr/bin/someprogram# 或chmod4755/usr/bin/someprogram执行该程序时以文件所有者的权限运行而非执行者。典型应用/usr/bin/passwd允许普通用户修改shadow文件。2. SGIDSet Group ID- 2000chmodgs /shared/directory# 或chmod2755/shared/directory对文件执行时获得文件所属组的权限对目录在该目录下创建的文件继承目录的组3. Sticky Bit - 1000chmodt /tmp# 或chmod1777/tmp目录设置了Sticky Bit后只有文件所有者、目录所有者或root才能删除/重命名该目录下的文件。/tmp目录默认启用此权限。4. 查看特殊权限ls-l/usr/bin/passwd# -rwsr-xr-x s表示SUID已设置ls-ld/tmp# drwxrwxrwt t表示Sticky Bit已设置六、权限管理最佳实践1. 最小权限原则只为用户和组分配完成任务所需的最小权限避免使用777。2. 定期审计# 查找系统中所有777权限的文件安全风险find/-typef-perm07772/dev/null# 查找并修复find/var/www-typef-perm0777-execchmod644{}\;find/var/www-typed-perm0777-execchmod755{}\;3. 使用sudo而非root通过sudo给用户临时管理权限避免直接使用root账户。4. 敏感文件保护# SSH密钥应该是600权限chmod600~/.ssh/id_rsa# 家目录应该是700chmod700~/5. 组策略管理通过组来管理权限新用户加入组即可获得相应权限离职时从组中移除即可。七、实战案例场景1Web服务器目录权限设置# 创建web用户组sudogroupaddwebteam# 添加用户到组sudousermod-aGwebteam developer1sudousermod-aGwebteam developer2# 设置网站目录sudochown-Rwww-data:webteam /var/www/htmlsudochmod-R775/var/www/htmlsudochmodgs /var/www/html# 新文件继承组# 确保日志目录可写sudochmod775/var/log/apache2场景2共享开发目录# 创建共享组sudogroupaddshareddev# 创建共享目录sudomkdir/opt/sharedsudochownroot:shareddev /opt/sharedsudochmod2775/opt/shared# SGID确保新文件属于shareddev组# 添加成员sudousermod-aGshareddev alicesudousermod-aGshareddev bob场景3查找异常权限文件# 查找SUID/SGID文件潜在安全风险find/-perm/6000-typef2/dev/null# 查找无所有者的文件find/-nouser-o-nogroup2/dev/null# 查找最近修改的权限find/etc-typef-perm/ow-ls2/dev/null总结掌握用户、组和权限管理是Linux系统管理的核心技能。关键要点命令用途常用选项useradd/userdel创建/删除用户-m创建家目录-r删除相关文件usermod修改用户-aG追加到组-s改shellgroupadd/groupdel创建/删除组-g指定GIDgpasswd管理组成员-a添加-d删除-M批量设置chmod修改权限755/644/700等数字模式chown修改所有者-R递归--reference参考文件chgrp修改所属组普通用户可操作自己所属的组记住权限管理的核心是平衡便利性与安全性。在生产环境中务必遵循最小权限原则定期审计权限设置避免777权限泛滥正确使用sudo代替root操作。参考资源- Linux chmod、chown 和 chgrp 文件权限指南

相关文章:

Shell核心基础命令(下)——系统与权限操作

Shell核心基础命令(下)——系统与权限操作 前言 在Linux系统中,权限管理是系统安全的基石。作为多用户多任务操作系统,Linux通过精细的用户-组-权限模型来控制对系统资源的访问。本文将深入讲解Shell中与系统权限相关的核心命令…...

月入3W+!Java+YOLO接单变现全指南:10个可直接落地的AI视觉项目,全场景覆盖

做Java后端开发的同学,是不是都困在「CRUD死循环」里?每天写重复的业务代码,薪资触顶难突破,想转AI赛道又被Python劝退,学了一堆算法却找不到落地场景,更不知道怎么变现。 我身边有个3年经验的Java开发朋友…...

不记命令也能排障:catpaw chat 实战手册俟

Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT&#xff0…...

EF Core 10向量搜索扩展架构设计图泄露事件(内部PPT第7页已证实):这3个设计决策将重写.NET AI应用开发范式

第一章:EF Core 10向量搜索扩展的演进背景与战略定位随着AI应用在企业级系统中加速落地,传统关系型数据库的标量查询能力已难以满足语义检索、相似性匹配等新兴场景需求。EF Core 10首次将向量搜索能力深度融入ORM层,标志着微软在数据访问技术…...

一文搞懂 Cookie、Session 和 Token 的区别

背景 在 Web 应用中,HTTP 是无状态协议,服务器无法自动识别用户身份。为了实现用户登录状态的保持与身份认证,需要引入 Cookie、Session 和 Token 等机制来在多次请求之间维持用户状态 Cookie Cookie 是存储在客户端(浏览器&#…...

Google 迎来「DeepSeek 时刻」:TurboQuant算法实现bit无损、×加速、×压缩、零预处理揪

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...

多租户下的ERP系统的仓储管理模块分析设计延

springboot自动配置 自动配置了大量组件,配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后,springboot会根据类路径上的jar包来自动配置bean(比如:springboot发现类路径上的MyBatis相关类&#xff…...

PFC(Power Factor Correction,功率因数校正)

PFC电路的用处用处1:迫使电流与电压同相位,使得用电设备对于电网而言相当于纯阻性负载。当负载呈感性时:电流滞后电压;呈容性时:电流超前电压功率因数越大(接近1.0)说明设备性能越好&#xff0c…...

【赵渝强老师】崖山数据库的体系架构

YashanDB数据库中有数据库和数据库实例这两个基本的概念,并且从体系架构的组成上看,YashanDB数据库又分为了存储结构、进程线程结构和内存结构。因此,要掌握YashanDB的体系架构就需要从数据库与数据库实例入手,并进一步深入到其内…...

亚马逊停止旧款 Kindle 支持,用户与市场面临新变局

2026 年旧款 Kindle 告别 Kindle 商店亚马逊宣布从 2026 年 5 月 20 日起,停止对 2013 年前发布的 Kindle 电子阅读器和 Fire 平板电脑的支持。届时,这些设备将无法访问 Kindle 商店,不能借阅、购买或下载新书籍,但仍可阅读设备上…...

GraalVM Native Image内存优化实战手册(含JDK21+GraalVM24.1插件全链路安装避坑清单)

第一章:GraalVM Native Image内存优化实战手册导论GraalVM Native Image 将 Java 应用提前编译为独立的本地可执行文件,显著降低启动延迟与运行时内存开销。然而,默认构建的 native image 常因反射、动态代理、资源加载等隐式依赖而保留大量未…...

小而强,Meta推出超级智能实验室首款AI模型Muse Spark

文章目录前言二、啥是Muse Spark?说白了就是个"会思考的小机灵鬼"三、"小而强"到底是啥意思?四、不止会聊天,还会"看图说话"五、专门请了1000个医生来"教"它六、从"开源先锋"到"闭源…...

C# 面试高频题:装箱和拆箱是如何影响性能的?伟

OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

Unity发布京东小游戏圃

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...

技术分享 | MySQL 8.0复制架构主从自动切换脚本

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

Java原生镜像内存优化实战手册(含AOT编译期内存剖分图谱):从386MB→47MB的7次关键裁剪记录

第一章:Java原生镜像内存优化全景图谱Java 原生镜像(Native Image)通过 GraalVM 的 AOT(Ahead-of-Time)编译技术,将 Java 字节码直接编译为平台原生可执行文件,在启动速度、内存占用和资源效率方…...

​有机溶剂回收设备厂家实测

测评主体公示本次测评对象包括:可迪尔、蓝太克、英飞、艾科,以及有机溶剂回收设备厂家(选取三家技术路径不同的具体设备:厂家A‑活性炭吸附型、厂家B‑沸石转轮浓缩型、厂家C‑冷凝回收型)。 统一测评维度:…...

仅限首批200名开发者获取:Java 25虚拟线程高并发架构迁移评估工具包(含代码扫描器+风险热力图+ROI预测模型)

第一章:Java 25虚拟线程高并发架构迁移全景认知Java 25正式将虚拟线程(Virtual Threads)从预览特性转为标准特性,标志着JVM并发模型进入轻量级、高密度、低开销的新纪元。虚拟线程基于Project Loom多年演进,以java.lan…...

案例分析:学术文献综述 Agent Harness

案例分析:学术文献综述 Agent Harness——从手动“文献堆沙”到智能“知识城堡”的AI构建器关键词:学术文献综述 Agent、Agent Harness、多智能体协作、大语言模型应用、学术自动化、知识图谱构建、文献检索-筛选-总结流水线摘要:本文以Chatb…...

从田间到大屏只要1.8秒:PHP异步任务队列+Redis流式渲染农业可视化看板(实测QPS 1270+)

第一章:从田间到大屏只要1.8秒:PHP异步任务队列Redis流式渲染农业可视化看板(实测QPS 1270)在智慧农业场景中,传感器集群每秒上报数千条温湿度、土壤EC值、光照强度等时序数据,传统同步渲染方式导致看板平均…...

PHP容器化落地国产化替代的最后1公里:从Docker镜像构建、OpenEuler适配到等保2.0合规部署(含12项硬性检测项)

第一章:PHP容器化部署国产化适配方案在信创背景下,PHP应用需适配国产操作系统(如统信UOS、麒麟V10)、国产CPU架构(鲲鹏、飞腾、海光、兆芯)及国产中间件生态。容器化是实现跨平台一致部署与国产环境快速迁移…...

环境变量-代理/PowerShell乱码

设置代理[Environment]::SetEnvironmentVariable(HTTP_PROXY, socks5://127.0.0.1:5800, User) [Environment]::SetEnvironmentVariable(HTTPS_PROXY, socks5://127.0.0.1:5800, User) [Environment]::SetEnvironmentVariable(ALL_PROXY, socks5://127.0.0.1:5800, User) Write…...

NVIDIA Profile Inspector:深度优化显卡性能的游戏技术解决方案

NVIDIA Profile Inspector:深度优化显卡性能的游戏技术解决方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 在游戏运行过程中,用户常常面临帧率不稳定、画面撕裂、输入延迟高…...

南京道尔斯特机架式PDU重新定义工业级安全电源管理新范式

在数字化基建加速迭代、工业互联网深度渗透的现在,电力分配作为工业数字底座的关键枢纽,其安全性、可靠性与智能化水平​行业痛点凸显:传统电源方案难以适配工业高负载场景刚需​当前,随着GPU服务器、工业PLC、精密医疗设备等大功…...

手机扩大屏定制厂家:菲涅尔高清模压技术护航跨境出海

在跨境电商快速发展的如今,手机屏幕放大器作为移动配件领域的细分品类,正在成为全球卖家关注的焦点。然而,货源不稳定、产品同质化、知识产权风险、镜片清晰度不佳等行业痛点,始终困扰着跨境电商从业者。如何找到一家技术过硬、供…...

Yu-AI-Agent 项目(AI 恋爱大师智能体) · 学习笔记

Yu-AI-Agent 项目(AI 恋爱大师智能体) 学习笔记 本项目是 AI 超级智能体 项目的 Java 前后端部分,学习自 鱼皮 编程导航 的 AI 开发实战课程及开源代码仓库。 基于 Spring Boot 3 Java 21 Spring AI 构建了 AI 恋爱大师应用与 ReAct 模式…...

如何释放CPU全部潜能:CPUDoc智能优化工具完全指南

如何释放CPU全部潜能:CPUDoc智能优化工具完全指南 【免费下载链接】CPUDoc 项目地址: https://gitcode.com/gh_mirrors/cp/CPUDoc 你是否经常感觉电脑性能未能充分发挥?明明配置不错的硬件,却在运行大型软件或游戏时出现卡顿&#xf…...

【Hot 100 刷题计划】 LeetCode 74. 搜索二维矩阵 | C++ 二分查找 (一维展开法)

LeetCode 74. 搜索二维矩阵 📌 题目描述 题目级别:中等 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target…...

凌晨 6 点,裁员 3 万:AI时代最残酷的一幕来了

3月31日凌晨6点,很多甲骨文(Oracle)员工还在睡梦中,手机突然亮了。一封来自“Oracle Leadership”(甲骨文管理层)的邮件,只有短短几句话:“经过仔细评估公司当前业务需要&#xff0c…...

【Loom生产环境禁用清单】:这7个Spring Boot自动配置项正在 silently 杀死你的虚拟线程吞吐量

第一章:Java 25虚拟线程在高并发架构下的性能本质洞察Java 25正式将虚拟线程(Virtual Threads)从预览特性转为标准特性,标志着JVM并发模型的一次范式跃迁。其性能本质不在于单线程执行速度的提升,而在于**线程生命周期…...