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个用户分属 ...
随机推荐
- Xamarin.Android真机调试时闪退解决办法
项目->属性->Android Options,Packaging页签 去掉 Use Shared Runtime可解决
- 【转】在企业内部分发 iOS 应用程序
(via:破船之家,原文:Provision iOS IPA App for In-House Enterprise Distribution) 在企业内部分发 iOS 应用程序非常复杂.经过努力 ...
- Windows Server 2003 R2 64位简体中文版下载
32位版 CD1: SHA1值:d0dd2782e9387328ebfa45d8804b6850acabf520 ed2k://|file|cn_win_srv_2003_r2_enterprise_ ...
- ADUM1201在隔离RS232中的应用 【瓦特芯收藏】
ADUM1201在隔离RS232中的应用 引言: RS-232是PC机与工业通信中应用最广泛的一种串行接口.RS-232接口最初是由美国EIA(电子工业联合会)规定的用于计算机与终端设备之间通讯的一种 ...
- 简单的圆形图标鼠标hover效果 | CSS3教程
演示 本教程将和大将分享一些简单的圆形图标在鼠标hover时的动画效果.这种效果在不少时尚的酷站上都有.本教程中的例子主要是利用在a元素的伪元素上使用CSS transitions和animation ...
- 一、Microsoft Dynamics CRM 4.0 SDK概述
Chapter 1. Microsoft Dynamics CRM 4.0 SDK Overview(SDK概述) You are probably reading this book because ...
- 高扩展的基于NIO的服务器架构(二)
接上文高扩展的基于NIO的服务器架构 Reactor模式 如下图所示,将不同事件的检测分离开,当一种事件发生时一个事件处理器EventHandler将通知与该事件处理相对应的专用工作线程 采用这种架构 ...
- MVC3 Razor模板引擎
http://blog.csdn.net/tiz198183/article/details/8659362 一.Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母 ...
- 理解Android Java垃圾回收机制
Jvm(Java虚拟机)内存模型 从Jvm内存模型中入手对于理解GC会有很大的帮助,不过这里只需要了解一个大概,说多了反而混淆视线. Jvm(Java虚拟机)主要管理两种类型内存:堆和非堆.堆是运行时 ...
- 如何在VC中查询中文,及QT5的中文处理
1,VC中查询所有含中文字符串 使用正则表达式,查询内容为: (".*[\u4E00-\u9FA5]+)|([\u4E00-\u9FA5]+.*") 这样,就可以把代码中的中文都查 ...