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

相关推荐

  • PXE自动化安装系统相关实验

    PXE(Preboot Execution Environment):预启动执行环境,PXE是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘、光驱等设备启动。本节将带你学习dhcp,tftp服务器的搭建,以及使用PXE安装系统

    2018-05-26
  • VMware安装CentOS6系统图文详解

    在VMware上安装CentOS6系统,分两个步骤,根据自己的需求创建虚拟机,然后将CentOS6系统光盘挂载到虚拟机中安装系统。 一:创建虚拟机 点击创建虚拟机   这里我们选择系统推荐的典型模式。   我们这里先不选择安装程序光盘映像文件,随后再安装系统,选择下面一项。 操作系统选择Linux  CentOS 64位的。 由于我们计划…

    2018-03-31
  • ansible的简介和用法

    Ansible  (底层是基于ssh连接的,每次操作其他主机需要输入密码 ,所以首先要实现基于key的公钥验证) 使用ansible: ansible "192.168.60.3" -m shell -a 'ls /root' -k (单个用户在实现基于key的验证前) 安装ansible: yum包的安装:…

    2018-05-28
  • 第一周作业-Linux基础

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    2018-06-24
  • sed的用法

    sed是一种流编辑器,它一次处理一行内容。 处理时,把当前处理的行存储在临时缓冲区(pattern space),同时输出到屏幕,接着用sed命令处理缓冲区中的内容,接着读取下一行,这样不断重复,直到文件末尾。 用法: sed -[options] [操作] inputfile -n:不输出模式空间内容到屏幕,即不自动打印 -e: 多点编辑 -f:/PATH…

    2018-04-22