linux 文件夹权限及umask
先创建一个目录,看看权限:
$ ll
总用量 20
drwxrwxr-x 3 huangxm huangxm 4096 2月 16 16:35 ./
drwxr-xr-x 128 huangxm huangxm 12288 2月 16 16:35 ../
drwxrwxr-x 2 huangxm huangxm 4096 2月 16 16:35 test/
然后我们将权限更改为444, 即所有都是r权限
$ ll
总用量 20
drwxrwxr-x 3 huangxm huangxm 4096 2月 16 16:35 ./
drwxr-xr-x 128 huangxm huangxm 12288 2月 16 16:35 ../
dr--r--r-- 2 huangxm huangxm 4096 2月 16 16:35 test/
进入目录试一下
$ whoami
huangxm
$ cd test
bash: cd: test: 权限不够
huangxm@huanghao-Virtual-M
没有权限进入目录,看来只有r权限是不行的,那我们再加上w权限
$ ll
总用量 20
drwxrwxr-x 3 huangxm huangxm 4096 2月 16 16:35 ./
drwxr-xr-x 128 huangxm huangxm 12288 2月 16 16:35 ../
drw-rw-r-- 2 huangxm huangxm 4096 2月 16 16:35 test/
再cd进入目录试一下
$ cd test
bash: cd: test: 权限不够
看来还是不行。那我们就加上X权限 吧
$ ll
总用量 20
drwxrwxr-x 3 huangxm huangxm 4096 2月 16 16:35 ./
drwxr-xr-x 128 huangxm huangxm 12288 2月 16 16:35 ../
dr-xr-xr-- 2 huangxm huangxm 4096 2月 16 16:35 test/
再cd进入目录:
$ cd test
$ pwd
/home/huangxm/测试目录/test
看来只有读权限是没有办法进入目录的,只有rw权限也是不能进入目录的,所以一定要x权限都有才可以。
所以一般情况下,系统里的文件夹都是755权限,允许所有用户进入文件夹。
那我们在test目录下新建一个文件a.txt,并将test目录权限改为766,使所有用户都有rw权限。
$ ll
总用量 20
drwxrwxr-x 3 huangxm huangxm 4096 2月 16 16:35 ./
drwxr-xr-x 128 huangxm huangxm 12288 2月 16 16:35 ../
drwxrw-rw- 2 huangxm huangxm 4096 2月 16 16:53 test/ $ ll
总用量 8
drwxrw-rw- 2 huangxm huangxm 4096 2月 16 16:53 ./
drwxrwxr-x 3 huangxm huangxm 4096 2月 16 16:35 ../
-rw-r--r-- 1 root root 0 2月 16 16:53 a.txt
可以看到test文件夹所有用户都有w权限 , a.txt文件除root之外都只有r权限,现在我们以其它用户尝试修改一下
d
fd
fd
f
ffffffffff
E45: 已设定选项 'readonly' (请加 ! 强制执行)
强制保存一下,发现保存成功了。再打开文件看看
$ cat a.txt
ijfeihifh
f
e
f
ef
e
fe
f
ef
内容已经保存了。。明明文件是没有写入权限的,但是可以强制写入,而且可以删除文件,所以文件夹给w权限是相当危险的事情。
总结一下:
| 权限 | 操作 |
| r | cd |
| rx | cd ls |
| wx | cd touch rm(self,other) vi(self,other) |
| wxt | cd touch rm(self) vi(self) |
理一下思路:
1. 使用root用户创建目录test , 并给others wx权限,并创建a,b,c三个文件
# mkdir test
#chmod o=wx test
# touch test/{a,b,c}
查看一下, a,b,c是属于root的
-rw-r--r-- 1 root root 0 2月 16 18:00 a
-rw-r--r-- 1 root root 0 2月 16 18:00 b
-rw-r--r-- 1 root root 0 2月 16 18:00 c
2. 切换到普通用户身份,尝试删除a
$ rm -f a
到root用户下ll看一下,普通用户wx没有ls权限
# ll
总用量 8
drwxr-x-wx 2 root root 4096 2月 16 18:01 ./
drwxrwxr-x 3 huangxm huangxm 4096 2月 16 17:56 ../
-rw-r--r-- 1 root root 0 2月 16 18:00 b
-rw-r--r-- 1 root root 0 2月 16 18:00 c
a已经被删掉了
3. 以普通用户vi b,修改后强制保存,也是可以的。
4. 到root用户下,给test目录加个o=t权限
# chmod o+t test
# ls -l
总用量 4
drwxr-x-wt 2 root root 4096 2月 16 18:02 test
到普通用户下,尝试删除b
$ rm -f b
rm: 无法删除"b": 不允许的操作
加了t权限后已经无法删除别人的文件了。再尝试vi一下
"b" E212: 无法打开并写入文件
请按 ENTER 或其它命令继续
即使加!强制保存也不行了。
那么用数字形式怎么加t权限呢,比如tmp目录,这是个临时目录,所有人都需要往里放东西,所以它是777的权限,但是想一下,如果root放进去的东西,那别的用户是不是也可以修改,那就不合理了。所以tmp目录需要有个t权限,不允许其它用户修改,使用数字形式就是:
#chmod 1777 /tmp
umask:
每个用户在创建文件和文件夹的时候,都会给予文件和文件夹一个默认权限 ; 默认权限就是根据各用户的umask值来确定的。我们用root和普通用户创建文件和文件夹看看权限:
drwxr-xr-x 2 root root 4096 2月 17 11:15 rootdir
-rw-r--r-- 1 root root 0 2月 17 11:15 rootfile
drwxrwxr-x 2 huangxm huangxm 4096 2月 17 11:15 userdir
-rw-rw-r-- 1 huangxm huangxm 0 2月 17 11:15 usertouch
可以看出root用户创建的文件夹权限是755 ,创建的文件权限是644;普通用户创建的文件夹权限是775,创建的文件权限是664
分别查看一下root和普通用户的umask值
# umask
0022
$ umask
0002
root的umask是022 , 普通用户的是002
文件夹的权限 777 – 022 = 755 , 文件权限 666 – 022 = 644
我们可以这么理解,文件夹权限就是777 – umask 文件权限就是666 – umask
但并不是真的是减法,实际上是掩码,尝试一下将umask值设为777 (在当前用户下umask 777可以设置),那么文件权限是000,并不是-1
linux 文件夹权限及umask的更多相关文章
- linux文件夹权限问题
linux下 ls 某文件夹需要文件夹有 r 读权限. cd 某文件夹 需要文件夹有 x 运行权限 参考: http://www.linuxidc.com/Linux/2016-11/136959.h ...
- Linux文件夹权限详解
- 第一个字符代表文件(-).目录(d),链接(l) - 其余字符每3个一组(rwx),读(r).写(w).执行(x) - 第一组rwx:文件所有者的权限是读.写和执行 - 第二组rw-:与文件所有者 ...
- ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 2、linux 如何修改只读文件 3、ubuntu安装
1.ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 答案:需要超级用户权限 sudo 2.linux 如何修改只读文件 答案:可以使用chmod命令,为改文件提供其他的权限.u ...
- Linux chmod命令修改文件与文件夹权限的命令附实例
Linux chmod命令修改文件与文件夹权限的命令附实例 作者:佚名 字体:[增加 减小] 来源:互联网 时间:05-01 20:46:07我要评论 在linux中要修改一个文件夹或文件的权限我们需 ...
- Linux命令(14)文件和文件夹权限管理:chmod
linux文件和文件夹权限简介: chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限. Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方 ...
- Linux 文件及文件夹权限
普及 linux 基础知识,Linux 文件及文件夹权限,不要动不动就 777 权限.网上教程过于复杂啰嗦,简单总结如下...一.查看 Linux 文件权限 ls -l (通用)ll (Ubuntu适 ...
- 设置linux服务器文件夹权限
最近搞的网站一上传图片,就报500错误.经排查是服务器文件夹权限设置问题. 使用命令: chmod o+rwx avatar 即可改变文件夹权限设置.
- linux 文件夹-文件权限设置
只设置文件夹权限为755 文件权限为644find -type d -exec chmod 755 {} \; find -type f -exec chmod 644 {} \; 或者 fin ...
- Linux文件权限与文件夹权限实践
文件权限在基础中有介绍,不在重复 一.文件夹权限: 示例: 解释说明: r --read 既ls w --write 既创建新的目录或者文件 x --execute 既cd 现在有4个用户分属 ...
随机推荐
- Codevs No.1163 访问艺术馆
2016-05-31 20:48:47 题目链接: 访问艺术馆 (Codevs No.1163) 题目大意: 一个贼要在一个二叉树结构的艺术馆中偷画,画都处于叶子节点处,偷画和经过走廊都需要时间,求在 ...
- 剑指OFFER之变态跳台阶(九度OJ1389)
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入包括一个整数n(1 ...
- POJ 2195 D - Going Home 费用流
D - Going HomeTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/vie ...
- C#调用WORD处理的实例代码(包含excel)
最近程序人生(http://www.manong123.com)一个朋友让我帮他做一个小功能,其实就是把WORD文档里的内容存到数据库里去,可以实现搜索并转EXCEL的功能,需求很简单,想不到加上部署 ...
- node.js小工具--修改Xcode 'Create by'作者名称
简介 用Xcode创建源文件时会自动在文件开始位置加入如下注释: // // ISSImageCycleScrollView.m // SoftTravel // // Created by iss1 ...
- Android常用代码集合
这篇文章主要记录一些常用的一些代码段,方便以后查阅,不断更新中. 1:调用浏览器,载入某网址 1 2 3 Uri uri = Uri.parse("http://www.android-st ...
- ZOJ1109_Language of FatMouse(STL/map)
解题报告 题意: 略. 思路: map应用. #include <algorithm> #include <iostream> #include <cstring> ...
- 如何在Ubuntu 13.04中升级到 GNOME 3.8
如何在Ubuntu 13.04中升级到 GNOME 3.8 添加 GNOME 3 PPA(Personal Package Archives) 在你进一步浏览之前,确认你正在运行的是Ubuntu 13 ...
- thinkphp中的分表方法
public function getPartitionTableName($data=array()) { // 对数据表进行分区 if(isset($data[$this->partitio ...
- Metadata Lock原理7
http://blog.itpub.net/22664653/viewspace-1791744/ 一 简介 通过前面两篇文章的介绍,相信读到这里的各位对MDL 锁已经有了比较深入的了解了,本文将结合 ...