问题源头:

  登录到服务器(实验室分的一个服务器账号)上,想在当前目录下创建一个文件,但提示“文件系统只读”,无法创建文件。通过ls -l查看当前用户在当前目录的权限,发现具有rwx权限。所以在想会不会是因为我在父目录中没有w权限导致我无法在当前目录创建文件。但发现在父目录中我也是rwx权限...(最后,我感觉这个问题可能是服务器管理员对硬盘加了写保护)

  于是我做了以下的实验,想验证"父目录的权限对子目录的权限有没有影响?"  例如,某用户在父目录(testDir)没有写权限,那么该用户在当前目录(testDir/abc/)能否执行写操作?

lxw ~$ ls -ld testDir/
drwxrwxr-x lxw lxw Dec : testDir/
lxw ~$ chmod testDir/
lxw ~$ ls -ld testDir/
dr-x------
lxw lxw Dec : testDir/
lxw ~$ cd testDir/
lxw testDir$ touch parentFile  #合理,对testDir无w权限
touch: cannot touch ‘parentFile’: Permission denied
lxw testDir$ ls -l
total
drwxrwxr-x lxw lxw Dec : abc
-rw-rw-r-- lxw lxw Dec : txt
lxw testDir$ cd abc/
lxw abc$ ls
lxw abc$ touch childFile     #父目录虽然没有w权限,但只要我能够进入当前目录(具有x权限),我就能够按照我在当前目录的权限,进行操作。
lxw abc$ ls
childFile

  所以,经过上面的验证,父目录虽然没有w权限,但只要我能够进入当前目录(具有x权限),我就能够按照我在当前目录的权限,进行读写操作。

  现在我让testDir/目录只保留x权限:

lxw ~$ chmod  testDir/
lxw ~$ ll -d testDir/
d--x------
lxw lxw Dec : testDir//
lxw ~$ cd testDir/
lxw testDir$ ls       #合理, 没有r权限
ls: cannot open directory .: Permission denied
lxw testDir$ ll -d abc   #虽然我在testDir/没有r权限,无法看其有哪些文件,但若我事先已知道它有哪些文件,我就可以通过ls对这些文件进行查看。
drwxrwxr-x lxw lxw Dec : abc/
lxw testDir$ ll txt    #同上
-rw-rw-r-- lxw lxw Dec : txt
lxw testDir$ touch a     #合理, 没有w权限
touch: cannot touch ‘a’: Permission denied
lxw testDir$ cd abc
lxw abc$ ls
childFile
lxw abc$ ll -ld .
drwxrwxr-x lxw lxw Dec : ./
lxw abc$ touch childFile2  #虽然我在父目录中没有rw权限,但只要我能进入该目录(x权限),我就可以按照我在当前目录中的权限进行操作。
lxw abc$ ls -l
total
-rw-rw-r-- lxw lxw Dec : childFile
-rw-rw-r-- lxw lxw Dec : childFile2

  所以,通过上面的实验,我认为,只要父目录具有x权限,父目录的权限和子目录的权限没有直接的关系,不会相互影响

  最后,通过下面的例子进一步说明:

lxw ~$ chmod  testDir/
lxw ~$ ls -ld testDir/
drw-------
lxw lxw Dec : testDir/
lxw ~$ cd testDir/    #合理,没有x权限
bash: cd: testDir/: Permission denied
lxw ~$ ls -l testDir/   #有r权限
ls: cannot access testDir/txt: Permission denied
ls: cannot access testDir/abc: Permission denied
total
d????????? ? ? ? ? ? abc
-????????? ? ? ? ? ? txt
lxw ~$ cd testDir/abc
bash: cd: testDir/
abc: Permission denied

  最后一条语句, 我对abc目录具有rwx权限,对testDir具有rw权限,但我无法进入testDir/abc(父目录的权限影响到了子目录的权限),原因正是我对testDir没有x权限。

  如果您有不同的观点,欢迎您与我交流。

父目录的权限对子目录有没有影响?[Linux]的更多相关文章

  1. 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

    如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...

  2. linux 修改目录文件权限,目录文件所属用户,用户组

    1:查看命令:ll drwxr-xr-x  4 gamer ftp      4096 Mar  7 16:56 gstore drwxrwxrwx 10 root  ftp      4096 De ...

  3. [Linux]目录x权限对文件操作的影响

    问题 我们常使用linux以下命令 cd 进入目录 ls 列出目录中的文件 或者直接打开目录中的文件 以上操作对于目录权限位的设置来说,是有一定迷惑性的,如表格所示   cd进入该目录 cd进入该目录 ...

  4. CentOS 6.5系统上安装SVN服务器端的方法及目录访问权限配置(转总结)

    SVN其实就是Subversion,分为服务器端和客户端.之前在网上搜了很多方法,都有各种问题,经过自己搜集整理以及实际尝试,总算有个比较靠谱的方法.本文主要介绍CentOS 6.5系统上安装SVN服 ...

  5. 写文件前, 检查目录写权限(PHP)

    写文件前, 检查目录写权限 写或保存文件前, 确保目录是可写的, 假如不可写, 输出错误信息. 这会节约你很多调试时间. linux系统中, 需要处理权限, 目录权限不当会导致很多很多的问题, 文件也 ...

  6. chmod chown llinux文件及目录的权限介绍

    linux 文件或目录的读.写.执行权限说明: chmod :设置文件或目录权限. u:所有者 g:所在组 o:其他组 a:所有人(u.g.o的总和) chmod  -R  文件1/文件2…..    ...

  7. Linux 权限和目录更改、移除、更换目录、列出目录内容、使用通配符、移动、重命名

    12 chgrp :改变档案.目录所属群组          chgrp -R dirname/filename   chown :改变档案/目录拥有者              chown -R 账 ...

  8. 15、linux文件、目录的权限及如何改变权限(root用户不受任何权限的限制)

    15.1.linux普通文件的读.写.执行权限说明: r:读,表示具有读取\阅读文件内容的权限: w:可写,表示具有新增,修改文件内容的权限: 如果没有r配合,那么vi编辑文件会提示无法编辑(但可以强 ...

  9. Linux基础知识之文件和目录的权限机制

    Linux中的用户 Linux中的用户有三类,分别是: 所有者(u) 同组用户(g) 其他人(o) 如下图所示,假设存在两个组:groupA和groupB,rachel和ross属于组groupA,m ...

随机推荐

  1. CF 2B.The least round way

    题目链接 很久以前就见过此题,以前看了题解,然后今天写了写,写的真搓. #include <cstdio> #include <cstring> #include <st ...

  2. 【JAVA】Math.Round()函数常见问题“四舍5入”

    java.lang.Math.Round()使用时候,处理方式整理,方便以后查找   /**  * 测试函数 2014-01-10  */ public class TestMath {     pu ...

  3. Flex与.net进行URL参数传递编码处理

    在JS中用到的三种编码方式escape 对应于Flex中是一样的,并且支持相互的解码 var a:String = "超越梦想#"; trace(escape(a)); //%u8 ...

  4. 淘金客II项目问题日志(AngularJs+BootStrap+Api接口开发)

    问题二: 组件,如果是modal框,那么show的时候,是不会load它的(因为load有时候是需要传送数据的),需要别的组件去主动load它.那么问题来了:哪些框直接show,哪些框不仅需要show ...

  5. python进阶学习三——第四天

    一. iter&yield迭代器 1.1 iter names = iter(['zeng', 'chun', 'yun']) print(names) print(names.__next_ ...

  6. 第1章 Bootstrap介绍

    学习网址:http://www.bootcss.com/ 下载网址:http://v3.bootcss.com/ 下载后一共三个文件夹 css js fonts 引入的文件 <link rel= ...

  7. Android Studio 环境部署 (转载)

    Android Studio的安装和使用过程经常需要下载以来文件和Gradle版本,而Google网站在天朝的访问可谓步履维艰,没有稳定的FQ工具是非常痛苦的.何况,作为一个优秀的程序员,不能访问国外 ...

  8. BizTalk开发系列(十一) 在Orchestration中执行Pipeline

    由于开发需要有时要在流程中执行Pipeline.比如从DB的某个字段中取消息的字符串并在流程中构造消息.该需要通过pipeline进行升级 属性字段,验证消息等处理.BizTalk架构已经开放了此接口 ...

  9. c++之vector

    vector是STL中最常见的容器,它是一种顺序容器,支持随机访问.vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似, 不同的地方就是:数组是静态分配空间,一旦分配了空间的大小, ...

  10. PHP运算符===和==的区别 小细节

    区别: ===是恒等计算符   同时检查表达式的值与类型 ==是比较运算符号  不会检查条件式的表达式的类型 举例 if (strstr($new_url,'http://') === false) ...