linux无法创建目录权限不够_[Linux] 有关于目录的权限

修改权限用chmod, 命令简单本文不多说. 但是, 对于一个目录而言, 可执行的权限代表什么? 目录的写权限又是什么??? 对于一个文件而言, 重命名需要什么权限?
文件以及目录的权限控制是非常有必要的, 但是, 不要把有限的生命投入到无限的权限斗争中. 本文使用的Linux发行版本位Ubuntu18.04(虽然本文和不同发行版几乎没有任何关系, 但是写博客习惯介绍自己所使用的环境), shell为Bash, 默认以普通用户运行命令. 废话不多说, 正文开始

对于普通文件的权限

在 ls -l 的输出中, 某个记录的第一个字符是 - , 对应的的就是普通文件

对于普通文件, 有r w x三种权限, 比较简单, 但是需要注意以下几点:

  • 复制文件需要r权限
  • 执行脚本文件, 不仅需要x权限, 还需要r权限
  • 重命名文件不需要普通文件的权限, 但是需要所在目录的w权限. 这个在后面会讲到

对于目录的权限

在 ls -l 的输出中, 某个记录的第一个字符是 d , 对应的的就是目录. 目录是一张表, 记录着其下的子目录和文件(重点!!!! 要考, 记下来!)

对于一个目录, 也有r w x三种权限, 先看下这三种权限有什么用:

  • r 可以读取目录这张表, 比如读取目录下所有子目录及文件的名称
  • w 更改目录这张表, 比如重命名目录下一个文件
  • x 可以引用一个目录, 比如使用cd命令移动至目录

看的一头雾水? 没关系, 接下来看几个例子就明白了.

例子

现在有一个目录dire, 他的权限会随着情况不同而变化, dire下有一个权限为777的文件file1

  • 当dire的权限为400即r--, 目录只可读. 可以执行 ls dire 命令, 但是不能执行 ls -l dire 命令或者 ls -s dire 命令. 我们执行执行 ls dire 命令的时候, 实际上并没有引用dire这个路径, 实际上读的是dire这个目录(即读的是dire这个表), 因为这个表中就已经记录了他的子目录和文件. 而执行 ls -l dire 命令或者 ls -s dire 命令时, 就引用了dire这个路径, 但是dire没有x权限, 所以执行不了.
  • 当dire的权限为100即--x时. 我们可以通过cd命令进入到该目录. 不能使用ls命令, 原因上面说了, 因为目录没有r权限. 可以修改file1文件的内容, 修改file1文件的内容和目录的权限没有任何关系, 只和文件本身的权限有关, 但是, 当我们输入file然后按下<Tab>键想要自动补齐时, 却没有任何反应, 就像文件不存在一样, 同样, 这是因为目录没有r权限的关系.
  • 当dire的权限为500即r-x时, 就只少了一个w权限, 我们是不是可以为所欲为了呢? 当然不行, 我们可以使用ls -l, cd, 修改文件内容... 但是, 不能重命名文件, 也不能新建/删除文件, 原因很简单, 如果这样做了, 就会改变表的内容, 只有目录拥有w权限才可以做上述操作.

总结

做了一张表, 仅供参考. 列出目录内文件即ls dire(读取目录), 列出目录内详情即 ls -l dire(读取并引用目录), 进入目录即 cd dire(引用目录), 创建文件(修改目录的内容), 打印目录内文件即cd dire; cat file1 或 cat dire/file1(引用目录)

6b46b557560ecc9347fcea69331ea48f.png

写在最后: 不要把有限的生命投入到无限的权限斗争中.

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值