HH123_3 2022-06-04 17:18 采纳率: 86.8%
浏览 43
已结题

学习Unix环境编程遇到的问题2: 删除一个目录下的特定文件,最少需要哪些权限?

学习Unix环境编程遇到的问题2: 删除一个目录下的特定文件,最少需要哪些权限?

其实,我对目录文件权限一直不太明白。

我是这样理解,如有不对,希望指正。
目录就是就是文件,里面存放这一些条目, 每条条目记录该目录下文件或目录的名字和一个地址(指向描述文件的信息)。
在Unix下应该是可以用od -cb命令来查看目录的内容,会看到一些名字或其他一些不能解释为ASCII码的东西 (应该就是地址信息)。但是,我在Linux上尝试,却不能执行了。

  • "r": 可以查看这个目录文件,并将每条条目的名字信息告诉用户。
  • “w”: 可以删除或创建目录文件的条目,文件内容信息,描述文件的信息,
    • 对于删除来说: 必须首先知道要删除文件的名字, 然后遍历各个条目,比对名字信息, 如果不存在,则报错,,否则,不但将这个条目删除,还将磁盘上的文件内容和描述该文件信息一并删除,。
    • 对于创建来说,同样遍历各个条目,比对要创建的的名字和各个条目的名字,如果存在相同的,则报错, 否则,就创建一条条目,还要开辟空间,存放描述该文件的信息,将该空间地址存放条目的的地址处,还要在为文件的内容开辟一块空间。
  • “x”: 可以搜索,首先要知道要搜索的名字,然后遍历各个条目就可以知道存放文件信息的地址,最后查看那些文件的详细信息将其返回给用户。

当前目录为test, 文件test/text
根据以上的描述,删除 test/text 文件,只需要test目录有w权限即可,执行命令rm test/text, 但是事实上却不可以。

img

  • 写回答

1条回答 默认 最新

  • 逍遥xiaoy 2022-06-04 17:49
    关注

    通常来说,删除文件需要你拥有文件所属文件夹的所有权限,等价于读r写w执行x。
    首先是进入这个文件夹需要x权限,然后读取文件夹内容需要r权限,最后是删除文件,由于文件属于上级文件夹的一部分,所以需要对文件夹有w权限。删除过程是会进入文件夹,只是在系统内部执行的,而自己默认是看不见的,所以还是需要x权限。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 创建了问题 6月4日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法