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个用户分属 ...
随机推荐
- centos 使用mutt 命令发送邮件,随笔非教程
#按照mutt yum -y install mutt #发送邮件 echo .com -s "邮件主题" -a 附件本地地址
- c# socket编程简单例子
服务器端代码 using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Thr ...
- codeforce 621A(水题)
A. Wet Shark and Odd and Even time limit per test 2 seconds memory limit per test 256 megabytes inpu ...
- WEB安全之威胁解析
本文章转载自 http://www.xuebuyuan.com/60198.html 主要威胁: 暴力攻击(brute-force attack):这些攻击通过尝试所有可能的字符组合,以发现用户证书. ...
- [置顶] 新修改ADB,支持Android 4.2 系统 ,全部中文命令,手机屏幕截图等等
发过好几个ADB的工具,有很多朋友用了之后给我反馈了不少的意见和bug,这里非常感谢他们,所以今天花了一天的时间重新整理了一下ADB,并且修改了这些BUG.也有朋友建议我给一个修改列表,今天发这个帖子 ...
- CSS 边框的宽度
边框的宽度 您可以通过 border-width 属性为边框指定宽度. 为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em:或者使用 3 个关键字之一,它们分别是 thin .me ...
- Bootstrap栅格系统(布局)
栅格系统(布局) Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列. 我在这里是把Bootstrap中的栅格系 ...
- rxjava各种使用场景
1. 数据的三级缓存 final Observable memory = Observable.create(new Observable.OnSubscribe() { @Override publ ...
- Unity3D - 关于Dynamic和Static
含有Collider和RigidBody的GameObject, Unity视之为Dynamic 含有Collider的GameObject, Unity视之为Static 如果Static的物体发生 ...
- Linux下Vim工具常用命令
原文地址: http://www.cnblogs.com/lizhenghn/p/3675011.html 在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚 ...