---
tags: Blue 的學習紀錄, Linux
---
# Linux File System Permissions Model - chmod 777?
閱讀[這篇文章](https://linuxize.com/post/what-does-chmod-777-mean)後做的紀錄
## 使用者
對於一個檔案(file)/路徑(directory),Linux 將使用者分成三類:
- Owner 擁有者
- Group member 組員
- Others 其他人
## 權限種類
對於一個檔案/路徑的操作,也分為三類:
- r read 讀
檔案:檔案可以被讀取,譬如可以用文字編輯器打開
路徑:路徑內的內容都可以被存取,輸入`ls`可以顯示所有內容
- w write 寫
檔案:檔案的內容可以被修改
路徑:路徑內的檔案可以被移動、刪除或者在路徑上新增檔案
- x execute 執行
檔案:檔案可以被執行
路徑:擁有權限可以`cd`
## 查看一個檔案的權限
input:
```bash=
ls -l test.txt
```
output:
```bash
-rw-r--r-- 1 root root 2412 Aug 24 2020 test.txt
```
觀察 `-rw-r--r--` 並且拆分成四個部分
`-` + `rw-` + `r--` + `r--`
最左邊第一個字元表示的是 file type
`-` 表示為一個 file
`d` 為一個 directory
`l` 為一個 symbolic link
還有其他種類但不在此贅述
後面三個 `rw-` + `r--` + `r--` 則是在表達這個檔案的權限
分別由左至右按順序代表的是 Owner 擁有者、Group member 組員、Others 其他人的權限
其中 `rw-` 表示可以讀可以寫;`r--` 表示只能讀
## Permission number
除了以字元來表達權限,也可以用數字 0 ~ 7 來表達,相當於 3 個 bits
- 0(0+0+0):沒有任何權限
- 1(0+0+1):EXECUTE
- 2(0+1+0):WRITE
- 3(0+1+1):WRITE + EXECUTE
以此類推,使用數字 0 ~ 7 即可表達一個檔案所有權限的組合
## chmod 777
`chmod` 這個指令用於改變檔案的權限
`chmod 777` 即表示讓某個檔案或路徑變成 `rwxrwxrwx`
意思就是任何人都能全權操作!是非常危險的舉動