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个用户分属 ...
随机推荐
- MUSIC算法学习笔记
MUSIC即多重信号分类. MUSIC算法仅能估计非相干关信源,对相干信源,其性能将随信源间的相 关系数的增加而逐渐降低,直至完全恶化. 阵列信号处理的只要问题包括:波束形成技术,零点形成技术,空间谱 ...
- Apache Spark Streaming的优点
Apache Spark Streaming的优点: (1)优势及特点 1)多范式数据分析管道:能和 Spark 生态系统其他组件融合,实现交互查询和机器学习等多范式组合处理. 2)扩展性:可以运行在 ...
- 【转】并发编程之GCD
http://blog.xcodev.com/blog/2013/11/04/gcd-intro/ Dispatch Queue Dispatch Queue是一个任务执行队列,可以让你异步或同步地执 ...
- 通过OAF实现RTF多语言
职责: Oracle XML Publisher 管理员 -->主页 -->模板 -->创建模板 1.定义rtf模板时 在创建模板时,勾选可转换.
- pygame “音乐盒”---- 播放一首歌& 点击对话框后背景以及对话框大小改变
有时,你用pygame写的游戏也许需要播放一些背景音乐,该怎么做呢,直接上代码: 下面的代码,有关于: 1>设置对话框图标.大小.标题 2>播放音乐 3>设置背景图片,以及获取背景图 ...
- jsp验证码点击刷新
<img src="<%=basePath%>manage/code" alt="验证码" height="20" ali ...
- Weka – 分类
1. weka简单介绍 1) weka是新西兰怀卡托大学WEKA小组用JAVA开发的机器学习/数据挖掘开源软件. 2) 相关资源链接 http://sourceforge.net/pro ...
- 放开Linux内核对用户进程可打开文件数和TCP连接的限制
一. 检查linux内核uname -alsb_release -a 二. 用户进程可打开文件数限制1) vim /etc/security/limits.conf* - nof ...
- 关于STM32的ST官方的库的一点看法
标题确实很别扭,因为我现在用这个库也很别扭. 在不久之前,一直有个讨论的话题:STM32开发是用库还是用寄存器? 很多人的结论是不需要讨论! 但是,今天我想说下我的看法. 首先,我还是一个菜鸟,对库对 ...
- Codeforces Round #326 (Div. 2) B. Duff in Love 分解质因数
B. Duff in Love Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/588/proble ...