Linux絮絮叨(五) 文件基本属性和权限管理

Linux 文件基本属性和权限管理

在 Linux 系统中,一切皆文件,目录也是一种特殊类型的文件,每个文件都具有一组属性,这些属性帮助系统管理和控制文件的访问权限,以确保系统的安全性和稳定性。以下是对文件基本属性和权限管理的总结:


1. 文件基本属性

在 Linux 系统中,通过 ls -l 命令可以查看文件的详细属性。输出内容的一般格式如下:

-rw-r--r-- 1 root root 1234 Jan 1 12:34 filename

各部分的含义:

  • 第 1 位:文件类型

    • -:普通文件
    • d:目录
    • l:符号链接文件
    • b:块设备文件
    • c:字符设备文件
  • 第 2-4 位:文件所有者(owner)权限

    • r:可读权限
    • w:可写权限
    • x:可执行权限
    • -:没有权限
  • 第 5-7 位:文件所属组(group)权限

    • r:可读权限
    • w:可写权限
    • x:可执行权限
  • 第 8-10 位:其他用户(others)权限

    • r:可读权限
    • w:可写权限
    • x:可执行权限
  • 其他部分:包括硬链接数、文件所有者、文件所属组、文件大小、最后修改时间和文件名。


2. 文件权限的表示

Linux 文件的权限是通过 rwx(读、写、执行)来表示的。每个文件或目录都有三类用户权限:

  1. 所有者(Owner)
  2. 所属组(Group)
  3. 其他用户(Others)

权限分配的数字表示方法:

权限r (读)w (写)x (执行)
数字421

权限可以通过数字来设置,例如:

  • 7 表示 rwx(读、写、执行权限),计算方式为 4 + 2 + 1 = 7
  • 6 表示 rw-(读、写权限),计算方式为 4 + 2 = 6
  • 5 表示 r-x(读、执行权限),计算方式为 4 + 1 = 5
  • 4 表示 r--(读权限)。

例如:权限 -rwxr-xr-- 的数字表示就是 754,具体分配如下:

  • 所有者(owner):rwx = 7
  • 所属组(group):r-x = 5
  • 其他用户(others):r-- = 4

3. 修改文件属性

3.1 chgrp 命令

chgrp 用于更改文件或目录的属组。

语法

# R 必须大写
chgrp [-R] group_name file_name 

示例

chgrp admin file.txt  # 将 file.txt 的属组更改为 admin

-R 选项用于递归更改目录及其下所有文件的属组。

3.2 chown 命令

chown 用于更改文件的所有者和/或属组。

语法

chown [-R] owner file_name
chown [-R] owner:group file_name
chown [-R] :group file_name

示例

chown user file.txt            # 将 file.txt 的所有者更改为 user
chown user:admin file.txt      # 将 file.txt 的所有者更改为 user,属组更改为 admin
chown -R user:admin /path/to/dir  # 递归更改目录下所有文件的所有者和属组
3.3 chmod 命令

chmod 用于修改文件或目录的访问权限。

语法

chmod [-R] xyz file_name
  • xyz:表示文件权限,使用数字表示(如 777),或者使用符号表示(如 u=rwx,g=rx,o=r)。
  • -R:递归修改目录及其所有文件的权限。

数字权限表示法
数字权限是由三个数字组成,每个数字表示所有者、所属组和其他用户的权限。例如 chmod 755 file.txt 表示:

  • 所有者:rwx = 7
  • 所属组:rx = 5
  • 其他用户:rx = 5

符号权限表示法
符号方法通过 u(用户/所有者),g(组),o(其他)来指定权限。

  • +:添加权限
  • -:去除权限
  • =:设定权限

示例

  • chmod u+x file.txt:为文件所有者添加执行权限。
  • chmod g-w file.txt:去除文件所属组的写权限。
  • chmod o=r file.txt:为所有用户(owner、group、others)设置只读权限。
  • chmod g-w a=r file.txt: 结合写法

递归操作

chmod -R 755 /path/to/dir  # 递归设置目录及其中所有文件的权限为 755

4. 权限设置实例

实例 1:查看文件权限

ls -l /path/to/file

实例 2:修改文件权限

chmod 777 file.txt  # 给所有用户赋予读、写、执行权限
chmod 754 file.txt  # 设置权限为 rwx r-x r-- (755)

实例 3:更改文件所有者和属组

chown user:group file.txt  # 更改文件所有者和属组

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/36253.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Android仿美团左右联动购物列表

Android仿美团左右联动购物列表 左右联动购物列表,不难。 一、思路: 两个RecycleView 二、效果图: 三、关键代码: public class MainActivity extends AppCompatActivity {private RecyclerView rl_left;private RecyclerVie…

Mitel MiCollab 企业协作平台 任意文件读取漏洞复现(CVE-2024-41713)

0x01 产品简介 Mitel MiCollab是加拿大Mitel(敏迪)公司推出的一款企业级协作平台,旨在为企业提供统一、高效、安全的通信与协作解决方案。通过该平台,员工可以在任何时间、任何地点,使用任何设备,实现即时通信、语音通话、视频会议、文件共享等功能,从而提升工作效率和…

深度学习camp-第J3-1周:DenseNet算法 实现乳腺癌识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 我的环境 语言环境:Python 3.12编译器:Jupyter Lab深度学习环境:Pytorch 2.4.1 Torchvision 0.19.1数据集:乳腺…

Elasticsearch 单节点安全配置与用户认证

Elasticsearch 单节点安全配置与用户认证 安全扫描时发现了一个高危漏洞:Elasticsearch 未授权访问 。在使用 Elasticsearch 构建搜索引擎或处理大规模数据时,需要启用基本的安全功能来防止未经授权的访问。本文将通过简单的配置步骤,为单节…

Vulhub:Shiro[漏洞复现]

目录 CVE-2010-3863(Shiro未授权) 使用浏览器访问靶场主页面 使用Yakit进行抓包 使用ffuf对靶机8080端口进行根路径FUZZ CVE-2016-4437(Shiro-550) 使用浏览器访问靶场主页面 使用Yakit进行抓包 使用Yakit反连中自带的Yso-Java Hack进行漏洞利用 首先运行脚本生成一个…

数学拯救世界(一)———寻“数”记

一、 很久很久以前,在一个只认识整数和小数的国度,有一个很残暴的国王提了一个要求:要是不能表示出把一段1米的绳子三等分后的大小,就要把所有的大臣杀掉。 1➗3 0.333,怎么办呀?怎么办呀? 袁q…

Codeforces Round 991 (Div. 3)题解

先随随便便写一点东西吧&#xff0c;毕竟只是一场div3 A. Line Breaks 思路&#xff1a;一道很简单的模拟题吧&#xff0c;就是遍历一遍&#xff0c;当大于x的时候就break&#xff0c;然后前面那个就是找到的前x个字的总长度不超过m #include<bits/stdc.h> using names…

掌握谈判技巧,达成双赢协议

在当今竞争激烈且合作频繁的社会环境中&#xff0c;谈判成为了我们解决分歧、谋求共同发展的重要手段。无论是商业合作、职场交流&#xff0c;还是国际事务协商&#xff0c;掌握谈判技巧以达成双赢协议都具有极其关键的意义。它不仅能够让各方在利益分配上找到平衡点&#xff0…

基于Matlab特征提取与浅层神经网络的数字图像处理乳腺癌检测系统(GUI界面+训练代码+数据集)

本研究提出了一种结合数字图像处理技术、特征提取与浅层神经网络的创新癌症检测系统&#xff0c;旨在为医学图像的分析和早期癌症检测提供有效支持。系统主要处理癌症与正常组织的医学图像&#xff0c;通过灰度共生矩阵&#xff08;GLCM&#xff09;等方法&#xff0c;从图像中…

Backblaze 2024 Q3硬盘故障质量报告解读

作为一家在2021年在美国纳斯达克上市的云端备份公司&#xff0c;Backblaze一直保持着对外定期发布HDD和SSD的故障率稳定性质量报告&#xff0c;给大家提供了一份真实应用场景下的稳定性分析参考数据&#xff1a; 以往报告解读系列参考&#xff1a; Backblaze发布2024 Q2硬盘故障…

河工oj第七周补题题解2024

A.GO LecturesⅠ—— Victory GO LecturesⅠ—— Victory - 问题 - 软件学院OJ 代码 统计 #include<bits/stdc.h> using namespace std;double b, w;int main() {for(int i 1; i < 19; i ) {for(int j 1; j < 19; j ) {char ch; cin >> ch;if(ch B) b …

[ABC234A] Weird Function

解题思路 这是一道模拟题…… 设置一个函数 &#xff0c;返回值为 。 最后答案就是 。 代码 记得开 long long ! #include<bits/stdc.h> using namespace std;long long t; long long f(long long x) {return x*xx*23; }int main() {cin>>t;cout<<f(f(f…

蓝牙键鼠无法被电脑识别

起因是我的键鼠是三模的&#xff0c;但是我蓝牙模式我只用过几次&#xff0c;基本一直使用的是有线模式&#xff0c;最近突然要用无线连接&#xff0c;如果使用收发器就显得过于繁琐&#xff0c;还占用usb口&#xff0c;因此想用蓝牙连&#xff0c;但是由于 win10更新了英特尔…

【C#设计模式(18)——中介者模式(Mediator Pattern)】

前言 中介者模式&#xff1a;是两者之间通过第三者来帮助传话。 代码 //抽象接收者public abstract class Receiver{protected Mediator mediator;protected Receiver(Mediator mediator){this.mediator mediator;}public abstract void SendMessage(string message);public a…

动态计算加载图片

学习啦 别名路径&#xff1a;①npm install path --save-dev②配置 // vite.config,js import { defineConfig } from vite import vue from vitejs/plugin-vueimport { viteStaticCopy } from vite-plugin-static-copy import path from path export default defineConfig({re…

Java HashMap用法详解

文章目录 一、定义二、核心方法三、实例演示3.1、方法示例3.2、get()方法注意点&#xff01; 一、定义 Java 的 HashMap 是 Java 集合框架中的一个非常重要的类&#xff0c;它实现了 Map 接口。HashMap基于哈希表的数据结构&#xff0c;允许使用键-值对存储数据。这种存储方式使…

淘宝直播间智能化升级:基于LLM的学习与分析

自营直播应用技术团队负责的业务中&#xff0c;淘宝买菜的直播业务起步较晚&#xff0c;业务发展压力较大&#xff0c;业务上也就有了期望能够对一些二方的标杆直播间进行学习&#xff0c;并将其优点应用到自己直播间的需求。 最初 - 人海战术&#xff0c;学习PK 业务侧最直接的…

有的开发者用Apache-2.0开源协议,但是不允许商用?合理吗

Apache 2.0开源协议是设计用来允许商业使用的。该协议明确授予了使用者在遵守许可条款的情况下&#xff0c;对软件进行复制、修改、分发以及商业使用的权利。这包括但不限于&#xff1a; 1. 永久、全球性的版权许可&#xff1a;允许复制、准备衍生作品、公开展示、公开演出、从…

java学习 -----项目(1)

项目 写在前面的话&#xff1a;耳机没电&#xff0c;先来写写今早的感受。说实话&#xff0c;我并不喜欢我们的职业规划老师&#xff0c;满嘴荒唐言&#xff0c;被社会那所大缸浸染了一身社会气。课快结束时&#xff0c;老师问还有谁的视频没做&#xff0c;我把手举了起来。&a…

某j vue3 ts 随笔

因为ts组件封装的缘故&#xff0c;使用某个组件就必须按照这个组件的规则使用&#xff0c;老是忘记&#xff0c;这里就记一下吧 1.ApiSelect 组件 {label: 角色,field: selectedroles,component: ApiSelect,componentProps: {mode: multiple,api: getAllRolesListNoByTenant,la…