博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[svc]linux文件权限
阅读量:6689 次
发布时间:2019-06-25

本文共 3544 字,大约阅读时间需要 11 分钟。

linux中,每个文件拥有三种权限

f dir权限位最佳实战

权限 对文件的影响 对文件夹的影响
r 可读取/阅读文件的内容 可以列出目录内容,无法cd,ls -l看到文件名,属性是乱码.
w 修改文件的内容; 如果没r,vim可以强制写入,echo可以重定向 可以在目录中创建,删除,修改目录下文件名(前面3个功能都需要有x), 文件的删除受父目录的影响,因为文件名在父目录的block里存着,和文件本身权限无关
x 可以作为命令执行,root只需x, 普通用户需r+x 可以进入dir; 没r无法列出,没w无法删除和创建文件,重命名文件
f 说明
r 阅读
-w- 重定向写入
--x root执行
r-x 普通用户执行
dir 说明
r 列出文件名字
r-x 列出文件名字+进入dir+属性
rwx 列出文件名字+进入dir+属性,新建,删除,改名文件

演示环境

806469-20180316214404992-233985569.png

用户测试准备:

[root@maotai ~]# groupadd incahome          # 一个家庭(maotai, maomao的家)[root@maotai ~]# usermod maotai -g incahome # 让家庭主人maotai属于incahome这个家(模拟user)[root@maotai ~]# useradd maomao -g incahome # 让家庭主人maomao属于incahome这个家(模拟user)[root@maotai ~]# useradd test               # 外面的人,主人及家庭成员以外的人(模拟其他人other)

创建文件的测试准备

[root@maotai ~]# mkdir /maotai -p[root@maotai ~]# echo "echo maotailinux" >/maotai/test.sh[root@maotai ~]# chmod +x /maotai/test.sh [root@maotai ~]# cat /maotai/test.sh echo maotailinux
[root@maotai ~]# ls -l /maotai/test.sh-rwxr-xr-x 1 root root 17 Dec  6 04:38 /maotai/test.sh[root@maotai ~]# ls -l /maotai/test.sh-rwxr-xr-x 1 root root 17 Dec  6 04:38 /maotai/test.sh

806469-20180316220523361-760016569.png

结论1: maotai,maomao,test三个用户拥有同样的其他用户权限,即读和执行,没有写的权限。

[root@maotai ~]# chown maotai.incahome /maotai/test.sh [root@maotai ~]# ll /maotai/test.sh-rwxr-xr-x 1 maotai incahome 17 Dec  6 04:38 /maotai/test.sh

806469-20180316220743617-745280224.png

结论2:

maotai  拥有对应用户的权限,即读写和执行权限。    maomao  拥有对应用户组(incahome)的权限,即读和执行的权限,没有写的权限.    test    拥有对应其他用户的权限,即读和执行的权限,没有写的权限。
[root@maotai ~]# ll /maotai/test.sh-rwxr-xr-x 1 maotai incahome 17 Dec  6 04:38 /maotai/test.sh[root@maotai ~]# chmod g+w,o-x /maotai/test.sh # 给用户组加上w权限,给其他用户去掉x权限。[root@maotai ~]# ls -l /maotai/test.sh-rwxrwxr-- 1 maotai incahome 27 Dec  6 04:59 /maotai/test.sh

总结测试结论:

Linux普通文件的读写执行权限说明:

1.可读r: 表示有**读取,阅读**文件内容的权限;2.可写w: 表示具有**新增,修改**文件内容的权限    1.如果没有r配合,那么**vi**会提示无法编辑,(但可强制编辑),**echo**可以重定向或追加。    2.特别提醒:**删除文件(修改文件名等)**的权限是**受父目录的权限控制**,和文件本身权限无关。      文件名是保存在上一级目录的block里。所以要看父目录有没有权限,才能执行删除。    3.可执行x: 表示具有执行文件的权限。    1.文件本身要能够执行    2.**普通用户**同时还具备r的权限才能执行    3.**root**只要有**x的权限**就能执行。

总结Linux目录的读、写、执行权限说明

1.可读r:表示具有浏览目录下面文件及子目录的权限,即ls dir。     a、如果没有x权限,不能放进目录里,即无法cd dir。     b、如果没有x权限,ls列表时可以看到所有文件名,但是会提示无权限访问目录下的文件。     c、如果ls -l列表,所有的属性会带有问号,也会提示无权限访问目录下的文件,但是可以看到所有文件名。    2.可写w: 表示具有增加、删除或修改目录内文件名(一般指文件名)的权限,需要x权限配合。 3.可执行x: 表示具有进入目录的权限,例如cd dir。           但是没有r无法列表文件及目录,没有w无法新建和删除。

注意: 默认权限是安全权限的临界点,工作中尽量给这个临界点,或者小于临界点,不要大于临界点。

如下所示,超级用户创建目录默认是755,文件是644.

[root@n1 maotai]# mkdir dir [root@n1 maotai]# touch file [root@n1 maotai]# ls -lrt drwxr-xr-x 2 root root 4096 2月 8 11:05 dir -rw-r–r–   1 root root 0    2月 8 11:06 file

文件的时间戳

806469-20180316203622460-892836706.png

属性 解释
文件的 Access time atime 读取文件/执行文件 时更改的。如cat 1.log
文件的 Modified time mtime 写入文件时 随文件内容的更改而更改的。如echo 1 > alog
文件的 Create time ctime 写入文件/更改所有者/权限/链接 设置时随 Inode的内容更改而更改的。如ln if.sh if1.sh
atime >= ctime >= mtime

umask对文件计算结果为奇数时加1

umask奇数位权限问题--这种计算不靠谱

文件权限遇到奇数要在奇数位-1 ,文件夹不变

806469-20180316210223121-968331886.png

文件权限计算小结论----这种靠谱补一些

文件权限计算

创建文件默认最大权限为666 (-rw-rw-rw-),默认创建的文件没有可执行权限x位。

对于文件来说,umask的设置是在假定文件拥有八进制666的权限上进行的,文件的权限就是666减去umask(umask的各个位数字也不能大于6,如,077就不符合条件)的掩码数值;

重点在接下来的内容,如果umask的部分位或全部位为奇数,那么,在对应为奇数的文件权限位计算结果分别再加1就是最终文件权限值。

目录权限计算

创建目录默认最大权限777(-rwx-rwx-rwx),默认创建的目录属主是有x权限,允许用户进入。

对于目录来说,umask的设置是在假定文件拥有八进制777权限上进行,目录八进制权限777减去umask的掩码数值。

文件权限的一般计算方法:

默认文件权限计算方法

1)假设umask值为:022(所有位为偶数)6 6 6      ==>文件的起始权限值0 2 2 -    ==>umask的值---------6 4 42)假设umask值为:045(其他用户组位为奇数)----需要额外处理6 6 6      ==>文件的起始权限值0 4 5 -    ==>umask的值---------6 2 1      ==>计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1。0 0 1 +---------622        ==>真实文件权限

默认目录权限计算方法(不需要额外处理)

7 7 7      ==>目录的起始权限值 0 2 2 -    ==>umask的值--------- 7 5 5

转载地址:http://ockoo.baihongyu.com/

你可能感兴趣的文章
Android 滤镜效果和颜色通道过滤
查看>>
Ruby开发者已可通过Fog管理Microsoft Azure服务
查看>>
Chrome和HTTPS:安全Web的征途
查看>>
软件专家的对话模式(第一部分)
查看>>
脚本填报表的条件查询
查看>>
从一个开发的角度看负载均衡和LVS
查看>>
Spring Boot(12)——使用MongoDB
查看>>
c++基础(上) 听课流水账
查看>>
Observable
查看>>
k8s使用deployment升级
查看>>
ionic3项目实战教程 - 第10讲 ionic3分类菜单设计(类似外卖)
查看>>
深度解析 | K8S API Server之入门须知
查看>>
LeanEngine 中使用 WebSocket
查看>>
浅入分析和Linux内核相关的文件夹/proc和/sys .
查看>>
Java 二分查找
查看>>
刚刚,阿里开源了一项重磅炸弹,终结程序员“中年危机”!
查看>>
《Spring Boot开发:从0到1》图片
查看>>
教你十分钟构建好 SpringBoot + SSM 框架
查看>>
吸烟场景运营商“烟客”获2000万元Pre-A轮融资,用于线下吸烟空间建设
查看>>
未来 Docker 的安全
查看>>