chmod 大写X

大写执行权限X,加了怎么不显示呢

chmod(1) 手册页中对权限位的描述中提及到 rwxXst 六个权限标记, rwx 是几乎所有 Linux 初学者都会学到的,更进者会了解到 st 两个标记,但 X 却少有提起。所以大致了解了一下这个标记。

用一个最简单的 shell 脚本进行测试:

$ echo -e ‘#!/bin/sh\n\necho hello‘ > script.sh
$ ls -l script.sh
-rw-r--r-- 1 dawn users 22 Mar  3 23:52 script.sh
$ # 初始状态是没有执行权限的,这个时候 +X 试试
$ chmod a+X script.sh
$ ls -l script.sh
-rw-r--r-- 1 dawn users 22 Mar  3 23:52 script.sh
$ # 没有任何变化,并没有出现 X
$ ./script.sh
sh: ./script.sh: Permission denied
$ # 此时也无法执行
$ ########################################################
$ # u+x 后再试试
$ chmod u+x script.sh
$ ls -l script.sh
-rwxr--r-- 1 dawn users 22 Mar  3 23:52 script.sh
$ chmod a+X script.sh
-rwxr-xr-x 1 dawn users 22 Mar  3 23:52 script.sh
$ # 在 user 有执行权限的情况下执行 a+X 的效果和 a+x 相同

至此,我们已经可以对 X 有一些自己的了解了,笔者的想法是: chmod 中的 X 与 rwxst 不同,并不是真正意义的标识,而是 chmod 的一种行为,结合手册页中的解释,就是当文件是目录或对任意用户有执行权限的情况下,才设置执行权限位,即此时等价于 x,否则不改变执行权限。

所以,有了初步理解,我们就可以验证针对目录是否如此了。

$ mkdir -m 664 dir
$ ls -ld dir
drw-rw-r-- 2 dawn users 4096 Mar  4 00:09 dir
$ # 在该目录文件没有执行权限,此时尝试 a+X
$ chmod a+X dir
$ ls -ld dir
drwxrwxr-x 2 dawn users 4096 Mar  4 00:11 dir
$ # user、group 和 other 的执行权限成功被设置

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95576

(1)
涩葡桃涩葡桃
上一篇 2018-04-09
下一篇 2018-04-09

相关推荐

  • Linux系统软件包管理介绍

    Linux发行版中附带有成千上万的可用包,其中包括了Internet工具、开发工具、办公工具、游戏等,如果你没有选择完整安装,则只会安装这些包的“子集”,如何删除不想要的包,如何安装遗漏的包,学习LInux系统的软件包管理将解决你的这些问题

    2018-04-20
  • shell脚本逻辑运算及条件判断

    shell脚本基础,判断与运算命令用法大全

    2018-04-10
  • SSH协议及基于SSH集群key认证实验

    本节索引: 一、SSH协议相关概念 二、实验:实现基于key登录认证 三、实验:实现多台机器间互相基于key登录认证 四、实验:实现100台机器基于key登录验证 五、实验:利用pssh工具实现集群操作 一、SSH协议相关概念 SSH:secure shell,protocal,22/tcp,安全的远程登录; 利用 SSH 协议可以有效防止远程管理过程中的信…

    2018-05-19
  • 高效利用linux工作 之 学习命令行笔记(一)

    本节将先围绕“为什么学习命令行?”这个问题来展开个人使用linux的近期总结

    2018-07-21
  • 文件系统挂载

    一、mount、umount、mount -o remount、findmnt、lsof、fuser
    二、挂载设置ACL权限、模拟U盘功能、losetup
    三、UUID故障处理、分区迁移与恢复、永久挂载光盘分区、挂载USB、永久挂载文件夹
    四、SWAP、挂载光盘、制作ISO镜像、制作Centos6Everthing
    五、df、du、dd备份/恢复/修复硬盘

    2018-05-26