---
# System prepended metadata

title: Linux File System Permissions Model - chmod 777？
tags: [' Linux', Blue 的學習紀錄]

---

---
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`

意思就是任何人都能全權操作！是非常危險的舉動