首页 > 系统相关 >Linux文件权限

Linux文件权限

时间:2024-03-22 16:32:43浏览次数:25  
标签:文件 文件名 Linux chomd 权限 目录

前言

大家好,我是jiantaoyab,本篇文章给大家介绍Linux的文件权限。文件权限系统是确保文件和系统安全的关键组成部分。正确理解和配置文件权限对于维护系统安全至关重要。

用户和用户组

在Linux下,有拥有者user、用户组group、其他人others之分。

什么的group?

假设在一个班里面有2个小组A和B,A和B要对同一个问题进行作答,存在竞争关系,A组员之间能修改和查看对方的数据,但是B组的成员不能看到和修改A组的数据。那么A成员组成的A就是一个group。

在Linux默认中,系统上所有账号的信息都记录在/etc/passwd这个文件内,密码记录在/etc/shadow中,组名记录在/etc/group,更多用户管理内容的可以看我后面写的Linux用户管理。

Linux文件权限

Linux文件和属性是用来针对上面所说的用户和用户组进行设置的,我们先来看看文件相关的权限。

image-20240318172019793

第一个字符代表这个文件是目录、文件、链接文件等

-:普通文件
d:目录文件
l:链接文件
c:设备文件里面的串行端口设备,如键盘、鼠标
p:管道文件
b:块设备文件:磁盘

一般文件权限

r:代表可读,w代表可写,x代表可执行,没有权限的话用-表示。

注意root用户不受权限的限制

image-20240319194254215

通过chomd来增加或者删除文件权限

chomd g+x #给group加上x权限
chomd o+x #给other加上x权限
chomd u+x #给user加上x权限
chomd a+x #给所有人加上x权限
想要同时加可以用","隔开
chomd u+x,o+x #给user和other加上x权限

可以看到,权限每三三为一组,我们可以用数字来代表各个权限。

比如rw-r–r–转为二进制110 100 100再转八进制644,这里方便大家记忆r:4,w:2,x:1

所以,可以用数字来进行权限的修改。

image-20240319200604184

通过chgrp修改文件所属组,通过chown修改文件拥有者。

image-20240319195025970

为什么我这里给不了root呢?

虽然这个文件是我的,但是想要给别人也要别人同意才行,这里要么切换成root身份,要么加上sudo。

image-20240319195148598

可以看到将user改成root了,同样的更改所属组也需要这样操作。

image-20240319195346107

如果想要同时修改的话中间加上":"

image-20240319195959435

目录权限

上面说的权限是对文件的,同样的在Linux下一切皆文件,目录也是文件,但是一般文件和目录的权限是不一样的。

对于一般文件来说:

r:可以读取取文件的实际内容

w:可以编辑、新增、或修改文件内容,不包含删除文件

x:可以被系统执行

我们应该特别注意在Windows下一个文件是否具有可执行的权限是有扩展名来决定的,例如.exe、.com等,但是在Linux下,文件能否被执行,是由x这个权限来决定的,跟文件名没有关系。

文件是存放数据的地方,目录主要是记录文件名的列表,所以对于目录来说:

r:具有读取目录结构列表的权限,可以查看目录下文件名数据,就能用ls将文件名显示出来

w:表示可以改动目录结构列表,新建文目录、删除文件与目录、改已近存在的文件和目录的名字、移动文件和目录的位置,具有w权限就能变动目录下的东西。

x:表示能否进入该目录

注意

可以看到这个文件的对于我来说是什么权限都没有的。

image-20240319202733180

但是它在我的/home/jiantao/for_test下面,我对这个目录是具有w权限的,所以我能把for_test目录下的test.c给删除了。

image-20240319202534658

image-20240319202826627

我想要别人在自己的目录下创建文件但是不让他删别人的文件,为了解决这个问题,引入了粘滞位。粘滞位是给目录设置的,一般用来限制other权限。

image-20240319204656671

image-20240319204541813

默认权限

大家有没有注意到,普通文件的初始权限是666,目录文件是777,为什么新建一个目录/文件的默认权限是长这这样的呢?

image-20240319211937174

权限掩码umaskimage-20240319212145715

凡是在umask中出现的,都应该在起始权限中去掉

第一个0是给特殊权限用的,我们这里只看002,

用二进制表示是000 000 010,上面我说普通文件起始权限是666,对应的二进制就是 110 110 110。

image-20240319213032518

或者

(-rw-rw-rw-) - (-------w-) = (-rw-rw-r-)

同样的目录的权限(drwxrwxrwx)-(d-------w-)=(drwxrwxr-x) 也就是775。

我们还可以自定义umask的大小,只在当前会话有效,不建议写入bashrc中。

image-20240319213525196

连接数

表示有多少文件名链接到此节点。

每个文件都会将它的权限和属性记录到文件系统的inode中,不过目录树缺是使用文件名来记录,因此每个文件名就会链接到一个inode,连接数就是记录有多少不同的文件名链接到相同的一个inode中。

文件大小和最后修改时间就是字面意思,文件名的话后面我讲写一篇专门来介绍Linux文件种类与扩展名

标签:文件,文件名,Linux,chomd,权限,目录
From: https://blog.csdn.net/weixin_53425006/article/details/136856448

相关文章

  • Linux内核有什么之块设备驱动有什么第六回 —— 邂逅的三个文件系统之二:实际文件系统(3
    接前一篇文章:Linux内核有什么之块设备驱动有什么第五回——邂逅的三个文件系统之二:实际文件系统(2)本文内容参考:34|块设备(上):如何建立代理商销售模式?-趣谈Linux操作系统-极客时间特此致谢!上回书以F2FS文件系统为例,开始分析块设备邂逅的第二个文件系统:实际文件系统。本回......
  • 记录真实项目中遇到的bug--002:下载文件bug
    T02:下载文件bug1.前提条件:用户点击卡片2.预期结果:(1)下载地址正常时:用户可预览文件内容,并点击下载按钮开始下载文件(2)不可访问时:卡片置灰,提示:“尚未开放,敬请期待”3.实际结果:(1)下载地址正常时:用户可预览文件内容,并点击下载按钮开始下载文件(2)不可访问时:用户可点击卡片,弹出“此......
  • linux-sysrq
     sysrq        SysRq(systemrequest) 是Linux操作系统内核理解的一系列键,可以触发一组预定义的操作。当无法通过传统管理(执行虚拟机故障排除或恢复时,通常使用这些命令,例如,VM未)响应。         Sysrq被称为”魔术组合键”,是内建于Linux内核的调试工具......
  • Linux内核启动流程简介
    参考资料:https://www.bilibili.com/video/BV12E411h71h?p=38&vd_source=432ba293ecfc949a4174ab91ccc526d6 Linux内核链接脚本arch/arm/kernel/vmlinux.lds arch/arm/kernel/vmlinux.lds中OUTPUT_ARCH(arm)ENTRY(stext)//Linux内核入口,入口函数stextjiffies=......
  • git分支合并文件丢失问题
    一、产生问题 某些情况下,我们将两个分支进行合并时,在没有提示手动解决冲突的情况下下,文件会丢失。这可能是以下问题导致的。二、问题所在 git分支的合并,并不是多个分支简单的求内容的并集。假设我们有两个分支a与b,并且a与b中有相同的文件名c。当我们对a与b中的文件c内......
  • App Store 提交隐私-配置隐私清单文件
    关于AppStore提交的隐私更新2024年2月29日开发者应对自己App中包含的所有代码负责。在WWDC23上,我们宣布了针对常用第三方SDK的新隐私清单和签名,并宣布开发者将需要在其App的隐私清单中声明使用一组API的批准原因(英文)。这些变更有助于开发者更好地了解第三方......
  • 前端使用StreamSaver.js流式下载大文件
    最近有个需求,要求批量下载腾讯云cos文件,并打包压缩。1.方案一起初用的方案,文件数据一直是以blob方式传递的,小文件可以成功下载,但是遇到大文件(比如几个G)一直等待且不加遮罩层loading的情况下体验效果很差。import{saveAs}from'file-saver';importJSZipfrom'jszip';......
  • linux查看指定进程打开的文件数
    1.背景正式环境多个用户登录频繁报网络错误2.排查及解决##查看error.log发现原因是Toomanyopenfiles##ulimit-a命令可以查看单个进程最大打开文件的数量限制;默认1024##统计指定进程打开的文件数,发现都在1024以内lsof-ppid|wc-l##尝试修改nginx.confwork......
  • C#的播放资源文件里的音频例子 - 开源研究系列文章
          今天无聊,想起原来开发的待办列表TodoList里还缺个提醒声音,于是就添加了提供声音模块代码。然后想着记录一下,让更多的读者能够复用这个模块代码,于是就有了此博文。这个例子只是用于播放资源文件里的wav音频文件,如果要播放本地文件,那请读者自己添加代码,直接调用操作类......
  • 运行onlyOffice官方java-spring demo的必要参数和文件
    运行onlyOffice官方java-spring时报错从网络上没有找到相应的文章故做下笔记properties的参数修改server.version=1.8.0//配置自己的ip(如配置只能使用ip访问localhost失效)server.address=192.168.56.1server.port=4000filesize-max=5242880filename-max=50//文件存......