Linux 文件权限相关知识
文件权限说明
Linux中的文件能否被访问和工具(程序)无关,和访问的用户身份有关(谁去运行这个程序)
进程的发起者(谁去运行这个程序)。
- 进程的发起者若是文件的所有者: 拥有文件的属主权限
- 进程的发起者若属于文件属组:拥有文件的属组权限
- 应用文件“其它”权限

修改文件所有者、组
默认谁创建或传送的文件,所有者所属组默认是创建文件的时候从当前用户继承下来的
设置文件的所有者或所属组:chown
chown 命令可以修改属主也可以修改属组
选项:
-R:更改一个目录文件以及目录中的所有文件的属性
chown范例:
- 只修改文件所有者: chown 所有者 file
- 只修改文件所属组: chown (:)或(.)组名 file
- 两者都修改: chown 所有者(:)或(.)所有组 file
设置文件所属组: chgrp
chgrp:只修改文件的属组
文件权限管理
将访问文件的用户分为三类:
- owner 属主, u
- group 属组, g
- other 其他, o
用户权限的匹配规则:从左到右匹配,匹配到了就不匹配了
三种权限类型:
- r Readable
- w Writable
- x eXcutable
文件权限:
- r:表示可以读取里面的内容
- w:可以往文件里修改信息
- x:可以执行这个文件(包括二进制程序、shell脚本等)
目录权限:
- r:
读取目录文件中的文件列表 - w:能否在目录文件中
删除和创建文件 - x:
获取目录下文件的列表,和进入目录 - X
只给目录x权限,不给无执行权限的文件x权限
目录文件的最小权限: 执行权限x
文件能否被删除和文件权限无关,而是和该文件所在目录文件的写(w)权限有关(因为目录文件的数据块部分是一个文件列表,这个文件列表记录该目录下的文件和该文件的inode number之间的映射关系)
目录的执行权限:可以获取目录中文件的列表,和进入目录。要对目录下存在的文件进行读取和修改,必须要进入目录,所以必须要目录有执行权限。
例如:要访问apache服务器上的某个目录下的文件,此目录必须要有执行权限。
1、目录的可执行权限是表示可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录。即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。
所以创建目录文件的时候给了x权限,也要给r权限
2、而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
目录可执行权限
实现获取文件列表和进入目录
进入目录: 要对目录中的文件进行读取和修改操作就必须要进入目录
可执行权限标识是否可以对目录执行命令或者在目录下执行命令
只有执行权限,没有可读权限 -- 可以进入目录但是无法读取文件列表
修改文件权限: chomod
文件的执行权限对root起作用,读和写对root用户无效
文件的所有者和文件所属组里面的用户、root用户可以修改文件的权限。
选项:
-R:同时更改目录文件以及目录文件下的所有文件的权限

X 只给目录x权限,不给无执行权限的文件x权限

方法一:模式法
who opt permission(谁对谁做什么操作)
who:u,g,o,a (a:all,所有)
opt:+,-,= (=:会修改用户的所有权限)
permission:r,w,x
例如:取消a文件的执行权限
chmod a-x file
方法二:数字法
数字法:用数字来描述文件的权限
chomod 数字 file
八进制数字:
- --- 000 0
- --x 001 1
- -w- 010 2
- -wx 011 3
- r-- 100 4
- r-x 101 5
- rw- 110 6
- rwx 111 7
只要有奇数就肯定有执行权限
十进制数字法

范例:执行 cp /etc/issue /data/dir/ 所需要的最小权限?
/bin/cp 需要x权限
/etc/ 需要x权限
/etc/issue 需要r权限
/data 需要x权限
/data/dir 需要w,x权限
默认权限和特殊权限(root不受限)
新建文件的默认权限:
- 文件:644
- 目录文件:755
默认权限是由 umask命令来影响的(显示的值是一个八进制)
非特权用户umask默认是 002

root的umask 默认是 022

最前面的0代表这是一个八进制数字
更改umask的值: umask number

文件默认权限的计算方法:
新建文件夹的默认权限: 666 - umask --- 得到的结果如果有执行权限(奇数),就将这一位+1
更改umask的值是临时生效的
使用666不使用777的原因:
使用666的原因是,如果使用777,umask设置成000,那么新建的文件就会有执行权限,默认带执行权限的文件很危险
加1的原因:
因为某一位是奇数的话就是带有执行权限了,默认创建的文件是要求不带执行权限的,所以要加1
目录文件默认权限计算方法:
新建目录文件的默认权限: 777- umask
Linux文件系统上的特殊权限
设置了特殊权限,可执行权限这个位置由x或者空变成s或S
- SUID 作用于二进制可执行文件上,用户将继承此程序所有者的权限
- SGID :
若作用于二进制可执行文件上,用户将继承此程序所有组的权限
若作于于目录上, 此目录中新建的文件的所属组将自动从此目录继承 - STICKY 作用于目录上,此目录中的文件只能由所有者自已来删除
SUID
当我们的可执行文件具有suid权限以后,一个用户去运行这个可执行程序,他的身份就临时变成了这个可执行程序的所有者的身份
添加suid的方法:
- 模式法:u+s
chmod u+s filename - 数字法: 先写出传统权限 然后再加4
比如: 传统权限是755 加suid权限后: 4755 --- rwsr-xr-x
示例:chomod 4755 filename
SGID
作用一:用户运行这个程序的时候临时拥有所属组的权限
作用二: sgid加到一个目录文件上面,在这个目录文件里面创建的文件会继承这个目录文件得到所属组
添加SGID的方法:
- 模式法:g+s
chmod g+s filename - 数字法: 2
chmod 2xxx filename
STICKY
此目录中的文件只能所有者来删除
添加STICKY的方法:
- 模式法:o+t
chmod o+t filename - 数字法: 1
chmod 1xxx filename
注意:一个文件能否访问和程序没有关系,和执行这个程序的用户身份有关系
Linux 文件权限相关知识的更多相关文章
- Linux文件权限基础知识
一.文件权限概述 Linux中每个文件或目录都有一组一组9个基础权限位,每三位字符被分为一组,他们分别是属主权限位(占三个字符).用户组权限位(占三个字符).其他用户权限位(占三个字符).比如rwxr ...
- linux用户、文件权限相关命令
root 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户在所 ...
- Linux系统用户/用户组/文件权限相关
目录一.Linux系统用户/用户组权限相关二.Linux系统文件权限相关 一.Linux系统用户/用户组权限相关 .命令:usermod 用法:usermod [-agGus] user args ‘ ...
- Linux文件权限和访问模式
为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...
- Linux:文件权限
Linux:文件权限 1.文件权限 ☆文件所有者 ☆用户组 ☆其他人 ☆ROOT 说明: Linux系统中默认所有系统上的账号与一般身份用户,还有那个root的相关信息记录在/etc/passwd文件 ...
- Linux 文件权限于目录配置
用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...
- Linux文件权限与属性详解 之 SUID、SGID & SBIT
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
- Linux 文件夹相关常用命令
Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf -r 就是向下递归,不管有多少级目录,一并删 ...
- 说说Linux文件权限那些事儿
文件全部权 显示文件的全部权 更改文件的全部权 文件的权限 改动文件的权限 用符号表示法改动 用数字表示法改动 使用umask指定默认的文件权限 參考文献 首先我们要知道Linux的标准文件权限和安全 ...
随机推荐
- 算法基础③--DFS解决迷宫问题入门
迷宫问题 通过深度优先搜索(DFS)方法实现. 迷宫问题一 一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道. 看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头 ...
- CesiumJS 2022^ 原理[3] 渲染原理之从 Entity 看 DataSource 架构 - 生成 Primitive 的过程
目录 API 用法回顾 1. 为什么要从 Viewer 访问 Entity API 1.1. 高层数据模型的封装 - DataSource API 1.2. 显示管理器 DataSourceDispl ...
- 小米电视去广告之adb实战
近日闲来无事,对小米电视的开机广告.系统内置应用决定进行一波优化 安卓系统大部分都有一个"开发者模式", 在这个模式下可以放开手脚对系统进行一系列操作 此次要针对小米电视的UI使用 ...
- ThreadLocal的原理及产生的问题
点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. ThreadLocal的原理 特点 ThreadLocal和Sychro ...
- vue 设置动态标题
在 router/index.js 文件中设置 meta:{title:'标题'} 和 router.beforeEach,即可实现功能, 代码如下: import { createRouter, c ...
- Linux-centos8实现私有CA和证书申请
创建CA相关目录,centos8不存在这些目录,需手动建立 [root@centos8-liyj ~]#mkdir -pv /etc/pki/CA/{certs,cr1,newcerts,privat ...
- 【必看】局域网IP地址冲突罪魁祸首是谁?
开源Linux 长按二维码加关注~ 上一篇:一文详解FTP.FTPS与SFTP的原理 现如今,人们的生活处处离不开网络.企业办公信息化对网络的依赖则更大.为了提升安全管理和信息化水平,很多企业不仅建设 ...
- 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)
公众号关注「WeiyiGeek」 设为「特别关注」,每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 前言简述 0x01 环境准备 主机规划 软件版本 网络规划 0x02 ...
- K8S Calico网络插件
0.前言 参考文档:https://github.com/containernetworking/cni Pod网络插件,为了实现Pod网络而需要的插件.组件.由于Kubernetes通过开放的CNI ...
- drools中then部分的写法
目录 1.背景 2.支持的方法 2.1 insert 插入对象到工作内存中 2.1.1 需求 2.1.2 drl文件编写 2.1.3 部分java代码编写 2.1.4 运行结果 2.1.5 结论 2. ...
