在文件上運行“chmod 7”的結果是什麼?

在文件上運行“chmod 7”的結果是什麼?

我知道chmod 777允許,, 和執行為了使用者,團體, 和其他的

但如果我這麼做呢chmod 7

難道只是rwx為了使用者

答案1

拉梅什的回答是完全準確的,但我想插話並提供文件模式的更深入的解釋。

755雖然像和 之類的數字777可能看起來很特殊並且僅對文件模式有意義,但它們實際上非常基本。

這些數字實際上是八進制數。十進制數以 10 為基數,十六進制數以 16 為基數,二進制以 2 為基數,八進制數以 8 為基數。這意味著當你數數時,你就走1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 ...。所以這個數字007,只是八進制7。八進制數755只是一個數字,相當於493十進制。
現在如何區分八進制數和任何其他基數是八進制數以 為前綴0。所以說755是八進制,你真的應該稱之為0755。此chmod指令僅假設所有輸入數字都是八進制,因為這是引用檔案模式最常見的方式。

現在,為什麼檔案模式要使用八進位?首先我們要了解模式只是一個位元掩碼,如下所示:

111111111111 - 12 binary bits
============
           1 - Other execute
          1  - Other write
         1   - Other read
        1    - Group execute
       1     - Group write
      1      - Group read
     1       - User execute
    1        - User write
   1         - User read
  1          - Sticky bit
 1           - Set group ID
1            - Set user ID

請注意,「其他」、「群組」和「使用者」各有 3 位。二進制1117,它是最高的個位數八進制值。因此,透過使用八進位編號,其他群組和使用者權限中的每一個都會獲得一個數字,再加上 Sticky+setuid+setgid 的額外數字。

那麼,我們可以回到你最初的問題「什麼是chmod 7」?
好吧,現在我們知道它只是一個八進制數,並且它只是一個位元掩碼,我們可以弄清楚這一點。八進制7是二進制111。使用上述位元位置,我們可以確定這設定了所有 3 個「其他」位,授予「其他」執行、讀取和寫入存取權限。由於這只是一個數字,因此所有其他位元均為 0,並且未設定。

答案2

恰恰相反。它將授予rwx許可其他的

touch samplefile
ls -l samplefile
-rw-rw-r-- 1 ramesh ramesh 0 Oct 16 22:29 samplefile

現在,執行命令後,我得到的輸出為:

chmod 7 samplefile
ls -l samplefile
-------rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile

從 的手冊頁來看chmod

數字模式為 1 到 4 個八進制數字 (0-7),透過將值 4、2 和 1 的位元相加得出。 省略的數字被假定為前導零。

現在,我們可以透過執行命令來驗證相同的內容,

chmod 47 samplefile
ls -l samplefile
----r--rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile

正如我們所看到的,chmod 47在文件上使用將給出授權團體,執行授權其他的

相關內容