linux普通文件权限和系统目录权限的实践及结论
测试结论:linux普通文件的读、写、执行权限说明
1、可读r:表示具有读取\阅读文件内容的权限
2、可写w:表示具有新增、修改文件内容的权限
1)如果没有r配合,那么vi编辑文件会提示无法编辑(但可强制编辑,echo可以重定向或追加)
2)特别提示:删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身权限无关
3、可执行x:表示具有执行文件的权限
1)文件本身要能够执行
2)普通用户同时还需要具备r的权限才能
3)root只要有x的权限就能执行
4、修改和删除文件名都是在操作文件的上级目录的block,修改或删除的是文件名和inode的关联数据,因此,和上级目录权限关联
企业面试案例:请从linux文件系统的角度详细描述读取/tmp/boyfile文件的过程
范例:实操体会目录权限
开启两个窗口通过两个用户演示上面的权限。一个是root,一个是boy用户,一个是girl用户,一个是test用户
1)分别测试目录的rwx
特别是文件的删除!
总结测试结论:linux目录的读、写、执行权限说明:
1、可读r:表示具有浏览目录下面文件及子目录的权限,即ls dir
1)如果没有x权限,不能进到目录里,即无法cd dir
2)如果没有x权限,ls列表时可以看到所有文件名。但是会提示无权访问目录下文件
3)如果ls -l列表,所有的属性会带有问号,也会提示无权访问目录下文件。但是可以看到所有文件名
2、可写w:表示具有增加、删除或修改目录内文件名(一般指文件名)的权限(需要x权限配合)
3、可执行x:表示具有进入目录的权限:例如,cd dir。但是没有r无法列表文件及目录,没有w无法新建和删除
5、如果我们想改变的仅仅是打开目录的权限,使用chmod命令时不用加任何参数。如果想把目录以下的所有文件或子目录也同时改变,需要使用-R参数
6、当想改变一个目录下的所有.file权限,并且想保留该目录的原有权限时,请不要用.*通配符。可用下面的匹配:
[root@redhat~]# chmod -R 644 ett_dir/.[a-z]*
上面的例子chmod会匹配所有以.a到.z开头的文件
7、权限增减字符
+:添加某个权限
-:取消某个权限
=:取消其它所有权限赋予给定的权限
示例:
chmod u-x test,sh
chmod g+w test.sh
chmod u-x,g+w,o-rwx test.sh
chmod ugo=rw test.sh
chmod a=rw test.sh
企业场景:网站目录安全权限深度讲解及引出umask知识
web apache nginx
站点目录的文件和目录给什么权限:
默认权限是安全权限的临界点,工作中尽量给这个临界点,或者小于临界点,不要大于临界点权限
说明:超级用户创建目录默认是755,文件是644而不是其他的值呢?
操作系统还是网站站点目录安全权限临界点:
1)目录755,文件644是相对安全的权限
2)并且用户为root以及用户组root
在linux下文件的默认权限是由umask值决定的。
umask是通过八进制的数值来定义用户创建文件或目录的默认权限的。
umask对应数值表示的是禁止的权限。具体的细节,文件和目录略有不同。
文件权限计算小结论:
创建文件默认最大权限为666(-rw-rw-rw-),默认创建的文件一般没有可执行权限x位。
对于文件来说,umask的设置是在假定文件拥有八进制666的权限上进行的,文件的权限就是666减去umask的掩码数值;如果umask的部分位或全部位为奇数,那么,在对应为奇数的文件权限位计算结果分别再加1才是最终文件权限值。
创建目录默认最大权限777(-rwx-rwx-rwx),默认创建的目录属主是有x权限,允许用户进入。
对于目录来说,umask的设置是在假定文件拥有八进制777的权限上进行,目录八进制权限777减去umask的掩码数值。
范例:
文件权限的一般计算方法
1)假设umask值为:022(所有的位为偶数)
666 ==>文件的起始权限值
022- ==>umask的值
-------
644
2)假设umask值为:045(所有为奇数的位要加1)
666 ==>文件的起始权限值
045- ==>umask的值
-------
621 ==>计算出来的权限。由于umask的最后一位数字是5,所以,在其他用户组位再加1
001+
-------
622 ==>真实文件权限
linux普通文件权限和系统目录权限的实践及结论的更多相关文章
- Linux系统对文件及目录的权限管理(chmod、chown)
本文命令: 4 5 6 ls -l chmod chown 1.身份介绍 在linux系统中,对文件或目录来说访问者的身份有三种: ①.属主用户,拥有者(owner)文件的创建者 ②.属组用户,和文件 ...
- Linux - 对文件和目录的权限管理
对文件的权限管理 ls -l,也可以用 ll 命令查看文件权限的相关信息 第一列“-rw-r--r--.”为权限信息,权限信息的最后一个点表示为在安全环境下创建的 第二列“1”为硬链接数,第三列“ro ...
- linux的文件与目录的权限设置
@font-face { font-family: 宋体 } @font-face { font-family: "Cambria Math" } @font-face { fon ...
- 如何设置linux的文件和目录的权限
1 字符表示法 1)chmod [-R] 权限(mode)file 注:[-R]会将目录下所有权限都设置成指定的 who operator permission u(owner) +增加权限 r( ...
- Linux:文件和用目录权限基础
首先,用ls -i 查看文件的信息: 红框框起来的部分:-rw-r--r-- 一共是10位,第一位表示文件类型,-表示文件,d表示文件夹/目录:后面9位则表示权限 其中前三位是该文件/目录所属者的权限 ...
- Linux 修改文件夹的用户组权限
将ubsadm文件夹所属用户修改为userschown -R ubsadm:users /home/ubsadm 此命令将用户123的用户组改为rootusermod -g 123 root
- Linux 服务器如何设置文件和文件夹的读写权限
修改文件可读写属性的方法 例如:把index.htm 文件修改为可写可读可执行: chmod 777 index.htm 要修改目录下所有文件属性可写可读可执行: chmod 777 *.* 该命令中 ...
- [转]Linux中文件权限目录权限的意义及权限对文件目录的意义
转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...
- Linux基础知识之文件和目录的权限机制
Linux中的用户 Linux中的用户有三类,分别是: 所有者(u) 同组用户(g) 其他人(o) 如下图所示,假设存在两个组:groupA和groupB,rachel和ross属于组groupA,m ...
随机推荐
- python操作json文件
import json class OperationJson(object): def __init__(self,file_name=None): if file_name: self.file_ ...
- koa2 从入门到进阶之路 (五)
之前的文章我们介绍了一下 koa 中使用 ejs 模板及页面渲染,本篇文章我们来看一下 koa post提交数据及 koa-bodyparser中间件. 在前端页面中,不免会用到 form 表单和 p ...
- java 中的阻塞队列
1.什么是阻塞队列: 支持阻塞的插入方法,意思是当队列满时,队列会阻塞插入元素的线程,知道队列不满. 支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空. 插入和移除操作的4种处 ...
- win7,docker安装后,创建虚拟机分配不了ip错误 err: exit status 255
问题 win7装docker真麻烦,不如家里的win10爽.另外明明这是个很简单的操作,但是国内的解决方法有点落后,所以我写了个傻瓜式的. 有兴趣的可以直接看issue https://github. ...
- ASP.NET MVC缓存
根据缓存的位置不同,可以区分为: ①客户端缓存(缓存在用户的客户端,例如浏览器中) ②服务器缓存(缓存在服务器中,可以缓存在内存中,也可以缓存在文件里,并且还可以进一步地区分为本地缓存和分布式缓存两种 ...
- 固定ip地址
IP. 配置文件写数据库文件连接时,之前一直是就写个. ; 毕竟之前就自己本地用.现在需要,写ip地址,但是公司点的ip的都是自动获得的.并且过一段时间还会改变. 所以,需要固定一下啊. 首先cm ...
- Chart.js: 一个简单的 JS Chart Library
Chart.js 是一个 Open Source 的 JavaScript Chart Library.它一共有 6 中 Chart,全都是 HTML5 based. 底下是 Chart.js 所提供 ...
- Java基础知识——windows系统下安装JDK
(作者声明:文章引用了其他作者的文章,但因为笔记内容时间过久,已经忘记从哪里摘录下来的了.若无意间侵犯到原作者您的权利,对不起!您可以联系我,我这边会马上进行修改,谢谢!) 1.首先我们需要下载jav ...
- Hibernate笔记3--多表操作-导航查询
一.一对多操作 1.构造实体类及编写配置文件: 一方: // 一个Customer对应多个linkman private Set<Linkman> linkmans = new ...
- IIS 处理高并发
1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Settings Queu ...