linux 中的 chmod 與 chown 命令

語言: CN / TW / HK

持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第11天,點選檢視活動詳情

chown

chown,change owner。更改檔案的所屬使用者及組。

通過 ls 命令,第三第四列便是檔案所屬使用者及使用者組。

bash $ ls -lah . total 1.2M drwxr-xr-x 11 shanyue shanyue 4.0K Jun 22 18:42 . drwxr-xr-x 5 root root 4.0K Jun 24 11:06 .. drwxr-xr-x 2 shanyue shanyue 4.0K Jun 10 15:45 .circleci drwxr-xr-x 2 shanyue shanyue 4.0K Jun 10 15:45 .codesandbox -rw-r--r-- 1 shanyue shanyue 294 May 22 2021 .editorconfig -rw-r--r-- 1 shanyue shanyue 759 Jun 10 15:45 .eslintignore -rw-r--r-- 1 shanyue shanyue 8.4K Jun 10 15:45 .eslintrc.js drwxr-xr-x 7 shanyue shanyue 4.0K Jun 14 19:06 .git -rw-r--r-- 1 shanyue shanyue 12 May 22 2021 .gitattributes

通過 chown -R,可一併將子檔案所屬使用者及使用者組進行修改。

``` bash

將 . 資料夾下當前目錄的使用者及使用者組設為 shanyue

-R:遍歷子檔案修改

$ chown -R shanyue:shanyue . ```

chmod

mode 指 linux 中對某個檔案的訪問許可權。

通過 stat 可獲取某個檔案的 mode。

``` bash

-c:--format

%a:獲得數字的 mode

$ stat -c %a README.md 644

%A:獲得可讀化的 mode

$ stat -c %A README.md -rw-r--r-- ```

在瞭解 mode 之前,我們先看一下檔案的許可權。

  • r: 可讀,二進位制為 100,也就是 4
  • w: 可寫,二進位制為 010,也就是 2
  • x: 可執行,二進位制為 001,也就是 1

而 linux 為多使用者系統,我們可對使用者進行以下分類。

  • user。檔案當前使用者
  • group。檔案當前使用者所屬組
  • other。其它使用者

再回到剛才的 644 所代表的的釋義

``` bash

rw-:當前使用者可寫可讀,110

r--:當前使用者組可讀,010

r--:其它使用者可讀,010

所以加起來就是 644

-rw-r--r-- ```

而通過 chmod 即可修改使用者的許可權。

bash $ chmod 777 yarn.lock

另外也可以以可讀化形式新增許可權,如下所示:

``` bash

u: user

g: group

o: other

a: all

+-=: 增加減少複製

perms: 許可權

$ chmod [ugoa...][[+-=][perms...]...]

為 yarn.lock 檔案的使用者所有者新增可讀許可權

$ chmod u+r yarn.lock ```

作業

  1. 熟悉 cd、pwd、ls、exa、tree 等命令
  2. ls 單指令列出檔案列表時為何不顯示 .git 目錄,應如何顯示
  3. 在 Node.js 或其它語言中如何獲得 pwd
  4. 在 Node.js 或其它語言中如何獲得 ls 子檔案列表。參考 fsp.readdirreaddir