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.www58058.com/95576

(1)
澀葡桃澀葡桃
上一篇 2018-04-09 10:58
下一篇 2018-04-09 19:30

相關推薦

  • CentOS 6 開機流程

    CentOS 6 開機流程——linux由kernel和rootfs組成。kernel負責進程管理、內存管理、網絡管理、驅動程序、文件系統、安全等;rootfs由程序和glibc組成,完善操作系統的功能。同時linux內核的特點是模塊化,通過對模塊裝載卸載可以對內核功能自定義。linux內核鏡像文件:/boot/vmlinuz-2.6.32-696.el6.…

    Linux筆記 2018-05-13
  • linux網絡相關

    網絡配置 重啟失效 ifconfig 網絡地址顯示,地址配置 ifconfig 接口 IP/netmask [up|down] [-|+]promisc up 打開 down 關閉 -promisc關閉混雜模式 +promisc打開混雜模式,混雜模式用來監聽網絡數據 ifconfig eth0:1 ip/netmask route 路由管理命令 查看路由 -…

    Linux筆記 2018-05-06
  • yum庫

    yum一個可以解決包依賴的神奇命令

    2018-04-19
  • Shell腳本寫的備份還原工具 –reset.sh

    reset.sh腳本分兩個功能模塊,備份模塊和還原模塊;
    備份:備份指定文件到當前目錄,以備份時日期做為文件名
    還原模塊:可選擇性的還原指定時間的備份記錄

    2018-04-14
欧美性久久久久