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 10:58
下一篇 2018-04-09 19:30

相关推荐

  • Apache介绍及常用配置

    Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

    2018-06-21
  • https网络安全协议

    HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

    2018-06-22
  • Linux系统上命令的使用格式

    命令的语法通用格式: ~]# COMMAND OPTIONS ARGUMENTS ifconfig命令格式 ifconfig [interface] [options] | address   Echo命令格式 echo [options] …[string]… tty命令格式 tty [options] startx命令格…

    Linux笔记 2018-05-13
  • 网络管理基础

    IP地址由网络ID和主机ID组成 A类:0 000 0000 – 0 111 1111:1-127 网络数:126 每个网络中的主机数2^ 24-2=16777214 B类:10 00 0000 – 10 11 1111:128-191 网络数:2^ 14=16384 每个网络中的主机数:2^ 16–2=65534 C类:100 0 …

    2018-04-01
  • boot

    把boot目录都删除了怎么办 文件的 关键 缺少 唯独缺少 grub.conf     ;创建这个文件 以上是boot下文件都删除了的补救法 下面是第二种方法 光盘启动,救援模式   ,用安装包的方式 不能安装在当前的跟下 grub-install安装grub相关信息 写 以上是boot是独立分区

    2018-05-13