Linux 基础命令-文件权限与所有权
1. 文件权限概述
在Linux中,每个文件和目录都有与之关联的权限和所有权,来控制谁可以访问、修改或执行文件。文件权限与所有权可以防止未经授权的用户对文件进行访问或修改。
1.1 文件权限的组成
每个文件在Linux系统中都有三种类型的权限:
- 读取权限(read, r):允许查看文件内容或列出目录内容。
- 写入权限(write, w):允许修改文件内容或在目录中创建、删除文件。
- 执行权限(execute, x):允许执行文件或进入目录。
文件的权限分为三组:
- 文件所有者(owner):文件的创建者,拥有对文件的完全控制。
- 同组用户(group):文件所属的用户组中的所有用户。
- 其他用户(others):系统中的其他所有用户。
1.2 文件权限的表示方式
文件权限可以通过两种方式表示:
-
符号模式:用字母
r、w、x分别表示读、写和执行权限,文件权限用三个三位组的符号表示,如rwxr-xr--。其中:rwx:代表所有者的权限。r-x:代表同组用户的权限。r--:代表其他用户的权限。
-
数字模式:用八进制数字表示文件权限,每种权限对应的数字如下:
r= 4w= 2x= 1-= 0
文件权限以三组数字来表示,如
755,其中:7= 4 + 2 + 1,即rwx(所有者权限)。5= 4 + 1,即r-x(同组用户权限)。5= 4 + 1,即r-x(其他用户权限)。
2. 查看文件权限与所有权
2.1 使用 ls -l 命令
ls -l 命令可以详细显示文件或目录的权限、所有权及其他信息。
$ ls -l
输出示例:
-rw-r--r-- 1 user group 4096 Sep 9 12:00 file.txt
解释:
-rw-r--r--:文件的权限。第一位表示文件类型(-表示文件,d表示目录)。接下来的九位分为三组,每组表示所有者、同组用户和其他用户的权限。1:硬链接数。user:文件的所有者。group:文件所属的用户组。4096:文件大小(以字节为单位)。Sep 9 12:00:文件的修改时间。file.txt:文件名。
2.2 使用 stat 命令
stat 命令提供了更详细的文件状态信息,包括权限、所有者、文件大小等。
$ stat file.txt
输出示例:
File: ‘file.txt’Size: 4096 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 123456 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group)
Access: 2023-09-09 12:00:00.000000000 +0000
Modify: 2023-09-09 12:00:00.000000000 +0000
Change: 2023-09-09 12:00:00.000000000 +0000Birth: -
3. 修改文件权限
3.1 使用 chmod 命令
chmod(change mode)命令用于更改文件或目录的权限。可以使用符号模式或数字模式来修改权限。
3.1.1 使用符号模式修改权限
符号模式允许更灵活地修改文件权限,使用u(用户)、g(组)、o(其他用户)和a(所有人)进行操作。
+:添加权限。-:移除权限。=:设置为指定权限。
示例:
- 给文件所有者添加执行权限:
$ chmod u+x file.txt
- 移除同组用户的写权限:
$ chmod g-w file.txt
- 给所有人设置读权限:
$ chmod a+r file.txt
3.1.2 使用数字模式修改权限
数字模式更直观,直接设置文件权限的八进制表示。
示例:
- 将文件的权限设置为
755(所有者rwx,组用户r-x,其他用户r-x):
$ chmod 755 file.txt
- 将文件的权限设置为
644(所有者rw-,组用户r--,其他用户r--):
$ chmod 644 file.txt
3.2 修改目录权限
chmod命令同样适用于目录。注意,给目录添加执行权限表示用户可以进入该目录。
- 递归修改目录及其子文件的权限:
$ chmod -R 755 /path/to/directory
4. 修改文件所有权
4.1 使用 chown 命令
chown(change owner)命令用于更改文件或目录的所有者和所属组。
4.1.1 修改文件所有者
示例:
- 将文件的所有者修改为
newuser:
$ chown newuser file.txt
4.1.2 修改文件所属组
使用冒号(:)来指定用户组。
- 将文件的所属组修改为
newgroup:
$ chown :newgroup file.txt
4.1.3 同时修改文件所有者和所属组
- 将文件的所有者修改为
newuser,并将所属组修改为newgroup:
$ chown newuser:newgroup file.txt
4.2 使用 chgrp 命令
chgrp(change group)命令专门用于修改文件或目录的所属组。
- 修改文件的所属组为
newgroup:
$ chgrp newgroup file.txt
4.3 递归修改目录的所有权
- 使用
-R选项递归修改目录及其子目录和文件的所有者和所属组:
$ chown -R newuser:newgroup /path/to/directory
5. 特殊权限
Linux文件系统还支持一些特殊的权限设置,如SUID、SGID和粘滞位(Sticky Bit)。这些权限主要用于特殊的场景,如共享文件夹或需要临时提高权限的程序。
5.1 SUID(Set User ID)
SUID是文件的特殊权限,当设置了SUID位的文件被执行时,该文件将以文件所有者的身份运行,而不是以执行者的身份运行。
- 设置SUID权限:
$ chmod u+s file.txt
5.2 SGID(Set Group ID)
SGID是目录的特殊权限,当目录设置了SGID位时,所有在该目录下创建的文件将继承该目录的用户组,而不是创建者的默认组。
- 设置SGID权限:
$ chmod g+s /path/to/directory
5.3 粘滞位(Sticky Bit)
粘滞位通常用于共享目录。当目录设置了粘滞位后,只有文件的所有者或root用户才能删除该目录中的文件,即使其他用户对目录有写权限。
- 设置粘滞位:
$ chmod +t /path/to/directory
- 查看粘滞位:当粘滞位生效时,目录权限的最后一位显示为
t。
drwxrwxrwt 2 root root 4096 Sep 9 12:00 /tmp
6. 文件权限管理示例
下面是几个常见场景的权限管理示例:
6.1 共享文件夹
权限设置
假设我们有一个共享文件夹/shared,所有用户都可以写入文件,但不能删除其他用户的文件。
- 创建共享文件夹:
$ mkdir /shared
- 设置目录权限为
777,允许所有用户读、写和执行(进入)该目录:
$ chmod 777 /shared
- 设置粘滞位,防止用户删除其他用户的文件:
$ chmod +t /shared
6.2 限制文件访问权限
假设有一个敏感文件secret.txt,只有文件所有者能读取和修改该文件,其他用户不能访问。
- 创建文件:
$ touch secret.txt
- 设置权限为
600,只有文件所有者有读写权限:
$ chmod 600 secret.txt
7. 总结
Linux文件权限和所有权机制是保障系统安全的关键部分。通过使用chmod、chown、ls -l等命令,用户可以灵活地管理文件的读写执行权限及所有权。
相关文章:
Linux 基础命令-文件权限与所有权
1. 文件权限概述 在Linux中,每个文件和目录都有与之关联的权限和所有权,来控制谁可以访问、修改或执行文件。文件权限与所有权可以防止未经授权的用户对文件进行访问或修改。 1.1 文件权限的组成 每个文件在Linux系统中都有三种类型的权限:…...
气压测试实验(用IIC)
I2C: 如果没有I2c这类总线,连接方法可能会如下图: 单片机所有的通讯协议,无非是建立在引脚(高低电平的变换高低电平持续的时间)这二者的组合上,i2c 多了一个clock线,负责为数据传输打节拍。 (i2…...
C++ lambda闭包消除类成员变量
原文链接:https://blog.csdn.net/qq_51470638/article/details/142151502 一、背景 在面向对象编程时,常常要添加类成员变量。 然而类成员一旦多了之后,也会带来干扰。 拿到一个类,一看成员变量好几十个,就问你怕不…...
等待唤醒机制和阻塞队列
1. 等待唤醒机制 由于线程的随机调度,可能会出现“线程饿死”的问题:也就是一个线程加锁执行,然后解锁,其他线程抢不到,一直是这个线程在重复操作 void wait() 当前线程等待,直到被其他线程唤醒 void no…...
IO多路复用是如何处理多个客户端同时访问一个数据的
1. 原理概述 IO多路复用通过单个线程或进程监听多个文件描述符的状态变化,当某个文件描述符就绪(例如,有数据可读、可写或发生异常)时,线程或进程会收到通知,并对该文件描述符执行相应的IO操作。这种方式显…...
QT中使用UTF-8编码
在Qt中,确保应用程序使用UTF-8编码是非常重要的,尤其是在处理国际化和多语言文本时。以下是一些确保在Qt应用程序中使用UTF-8编码的方法: ### 1. 设置全局默认编码 在应用程序启动时,可以设置全局默认编码为UTF-8。这可以通过调…...
我对 monorepo 的一些思考
我对 monorepo 的一些思考 我对 monorepo 的一些思考 前言它的由来技术选型 管理工具语言与打包调试工具测试框架代码规范与质量控制本地引用与发包替换发包流程Github 相关配置部署 使用手册 功能特性总结如何使用?清除默认的包(可选)模板包介绍 packagesapps 更新…...
Java学习Day41:骑龙救!(springMVC)
springMVC与sevlet都是对应表现层web的,但是越复杂的项目使用SpringMVC越方便 基于Java实现MVC模型的轻量级web框架 目标: 小案例: 1.导入依赖 spring-context: 提供 Spring 框架的核心功能,如依赖注入、事件发布和其他应用上…...
Redis 常用命令总结
文章目录 目录 文章目录 1 . 前置内容 1.1 基本全局命令 KEYS EXISTS 编辑 DEL EXPIRE TTL TYPE 1.2 数据结构和内部编码 2. String类型 SET GET MGET MSET SETNX INCR INCRBY DECR DECYBY INCRBYFLOAT 命令小结 内部编码 3 . Hash 哈希类型 HSET …...
Mysql SqlServer 分页
一、MySQL分页 SELECT column1, column2 FROM table ORDER BY column1 LIMIT Offset, Fetch; SELECT column1, column2 FROM table WHERE id BETWEEN StartId AND EndId ORDER BY column1; 二、Sql Server 分页 SELECT column1, column2 FROM table ORDER BY column1 OFFSE…...
电子支付原理
电子支付原理 1.电子支付概述2.线下支付概念和一般流程线下支付技术分类 3.线上支付概念和一般流程 参考自:https://www.topsec.com.cn/uploads/2023-10-08/49dab9d0-004b-4955-808a-d1c83998b8191696745486491.pdf 1.电子支付概述 电子支付通用支付流程一般涉及四…...
什么是OAuth 2.0?OAuth 2.0的工作流程是什么?与OAuth 1.0有哪些区别?
在浏览网页时,你肯定会遇到允许你使用社交媒体账户登录的网站。此功能一般是使用流行的OAuth 2.0框架构建的。OAuth 2.0是对OAuth 1.0的彻底重写,OAuth 2.0与OAuth 1.0或1.1不向后兼容。 1. OAuth产生背景 为了更好的理解OAuth,我们假设有如…...
Unity+LeapMotion2的使用
开始吧 导入步骤1.到官网下载软件并安装2.安装插件3.场景中添加检测管理器4.场景中添加手部模型 更多细节 导入步骤 1.到官网下载软件并安装 地址 重启电脑后连接设备 可以看到连接成功 2.安装插件 (也可以看官方教程) Project—>PackageManag…...
【CanMV K230 AI视觉】 跌倒检测
【CanMV K230 AI视觉】 跌倒检测 跌倒检测 动态测试效果可以去下面网站自己看。 B站视频链接:已做成合集 抖音链接:已做成合集 跌倒检测 跌倒检测主要根据人体姿态来判断,可以用于老人、小孩跌倒监护。 实验名称:跌倒检测 实验…...
谈谈PCIe VID、DID、SSID、SSVID背后的智慧
PCIe Vendor ID 想了半天还是觉得从“ID是什么”这个问题开始比较好。那么ID是什么?ID就是身份。那身份又是什么?身份就是一个合理存在,用于区分不同个体。为什么叫“合理存在”呢?如果国家不给你发身份证,你就是黑户…...
9月11日
使用绘制事件完成钟表的绘制 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpSocket> #include<QMessageBox>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpub…...
昇腾310内存拷贝测试
目的 从服务器将数据拷贝到昇腾310 ai卡 结论 数据进入到服务器后的内存不能直接用昇腾acl接口拷贝到AI卡。 需要 1)先用acl接口申请内存; 2) 将数据拷贝到acl申请的内存 3)用acl接口将数据拷贝到AI卡 makefile # Copyri…...
‘$store‘ is not defined.
vueX不知道是否发挥作用?this.$store获取不到store/index.js中的数据 原因:版本问题 vuex版本不对,获取不到store 默认版本说明vuevue3vueXvue4vuex4只能在vue3中使用 vue默认vue3版本,vuex默认vuex4版本,vuex4只能…...
如何利用Linux提升工作效率和安全性?
Linux,作为一款自由和开放源代码的操作系统,已经在全球范围内得到了广泛的应用。无论是服务器、云计算、物联网,还是超级计算机,Linux都扮演着重要的角色。本文将深入探讨Linux的应用场景,以及如何利用Linux提升工作效…...
初始Linux 和 各种常见指令
目录 Linux背景 1. 发展史 Linux发展历史 1.历史 2. 开源 Linux下基本指令 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令(重要): 06.rmdir指令 && rm 指令(重要): …...
告别生产环境‘盲测’:手把手教你为uni-app应用打造一个本地日志收集与上传系统
告别生产环境‘盲测’:手把手教你为uni-app应用打造一个本地日志收集与上传系统 在移动应用开发中,最令人头疼的莫过于生产环境中那些"在我机器上好好的"的Bug。想象这样一个场景:你的uni-app应用在测试阶段表现完美,但…...
高斯过程回归预测:从“黑箱”到“白盒”,手把手教你用sklearn调参与可视化
高斯过程回归实战:从数学原理到工业级调优指南 金融时序预测中,当业务方质疑模型给出的波动区间时,工程师该如何解释那条逐渐收窄的置信带?设备剩余寿命预测场景下,为什么修改length_scale参数会显著改变退化曲线的拐点…...
Lusca源码解析:深入理解Express安全中间件的实现原理
Lusca源码解析:深入理解Express安全中间件的实现原理 【免费下载链接】lusca Application security for express apps. 项目地址: https://gitcode.com/gh_mirrors/lu/lusca Lusca是一款专为Express应用设计的安全中间件,它集成了多种安全防护机制…...
告别手动排版:用docx2tex将Word文档智能转换为LaTeX
告别手动排版:用docx2tex将Word文档智能转换为LaTeX 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 还在为论文排版而烦恼吗?每次从Word转换到LaTeX都要重新调整公式、…...
告别环境配置烦恼:Windows 10/11下RT-Thread Studio 2.2.7保姆级安装与首次运行指南
告别环境配置烦恼:Windows 10/11下RT-Thread Studio 2.2.7保姆级安装与首次运行指南 对于刚接触嵌入式开发的初学者来说,环境配置往往是第一个"拦路虎"。本文将手把手带你完成RT-Thread Studio在Windows系统下的完整安装流程,避开常…...
3分钟快速激活Windows和Office:KMS智能激活工具终极指南
3分钟快速激活Windows和Office:KMS智能激活工具终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office文档突然变成…...
避坑指南:DataSophon 1.0.0部署中那些官方文档没细说的步骤(防火墙、MySQL、Nginx配置)
DataSophon 1.0.0部署实战:防火墙策略、MySQL优化与Nginx反向代理的深度解析 当你第一次接触DataSophon这个新兴的大数据管理平台时,可能会被它"一小时部署300节点"的宣传所吸引。但真正开始部署时,很多工程师会发现官方文档对一些…...
STM32固件防抄攻略:手把手教你用Programmer CLI读取芯片ID并实现简易加密
STM32固件防抄实战:基于芯片ID的低成本加密方案设计与实现 在硬件产品开发中,固件安全往往是被忽视的一环。许多中小团队在产品量产前夕才意识到,精心设计的电路和算法可能因为固件被轻易复制而失去竞争优势。STM32系列MCU凭借其丰富的产品线…...
节日场景下慈善钓鱼与宠物诈骗机理及闭环防御研究
摘要 节日期间公众捐赠意愿上升、宠物领养需求旺盛,为网络钓鱼与社交欺诈提供了高发土壤。波士顿警方发布的节日安全预警显示,假冒慈善机构钓鱼、虚假宠物领养与交易诈骗已成为典型高发案件,两类攻击均依托情感诱导、域名仿冒、社交工程与支付…...
如何用Univer在3小时内构建企业级电子表格应用?5个实战技巧分享
如何用Univer在3小时内构建企业级电子表格应用?5个实战技巧分享 【免费下载链接】univer Build AI-native spreadsheets. Univer is a full-stack framework for creating and editing spreadsheets on both web and server. With Univer Platform, Univer Spreadsh…...
