Linux基本許可權 | 高階許可權管理

語言: CN / TW / HK

本文已參與「新人創作禮」活動,一起開啟掘金創作之路。

檔案系統基本許可權和高階許可權管理

1 檔案的基本許可權:r w x (UGO)

2 檔案的特殊許可權:suid sgid sticky 和檔案擴充套件許可權 ACL

3 實戰:建立一個讓 root 都無法刪除的檔案


檔案的基本許可權

許可權的作用

通過對檔案設定許可權可以達到以下三種訪問限制許可權:

  • 只允許使用者自己訪問
  • 允許一個預先指定的使用者組中的使用者訪問
  • 允許系統中的任何使用者訪問

檢視許可權

bash [[email protected] ~]$ ll /etc/passwd -rw-r--r--. 1 root root 2618 Nov 16 2020 /etc/passwd

檔案許可權基本解釋

檔案型別, 可以為 p、d、l、s、c、b 和 –

http p 表示命名管道檔案 d 表示目錄檔案 l 表示符號連結檔案 - 表示普通檔案 s 表示 socket 套介面檔案,比如我們啟用 mysql 時,會產生一個 mysql.sock 檔案 c 表示字元裝置檔案,例: 虛擬控制檯 或 tty0 b 表示塊裝置檔案 例: sda, cdrom

bash [[email protected] ~]$ ll /dev/vcs /dev/cdrom /etc/passwd /dev/tty0 lrwxrwxrwx. 1 root root 3 Nov 20 14:00 /dev/cdrom -> sr0 crw--w----. 1 root tty 4, 0 Nov 20 14:00 /dev/tty0 crw-rw----. 1 root tty 7, 0 Nov 20 14:00 /dev/vcs -rw-r--r--. 1 root root 2618 Nov 16 2020 /etc/passwd


許可權說明

對於檔案來說

  • r:讀
  • w:寫
  • x:執行

對於目錄來說

  • r:讀(看到目彔裡面有什麼) ls
  • w:在目錄裡面建檔案,刪除,移動 touch mkdir rm mv cp
  • x:進入 cd cat

檔案擁有者

  • UGO:所有者--使用者組--其它使用者

  • 所有者

就是建立檔案的使用者,這個使用者擁有對它所建立的檔案的一切許可權,所有者可以允許其所在的使用者組可以訪問所有者的檔案。

  • 使用者組

使用者組是具有相同特徵使用者的邏輯集合,有時我們需要讓多個使用者具有相同的許可權,比如檢視、修改某一個檔案的許可權,一種方法是分別對多個使用者迚行檔案訪問授權,如果有 10 個使用者的話,就需要授權 10 次,顯然這種方法丌太合理;另一種方法是建立一個組,讓這個組具有檢視、修改此檔案的許可權,然後將所有需要訪問此檔案的使用者放入這個組中,那舉所有使用者就具有了和組一樣的許可權這就是使用者組。

  • 其它使用者:系統內的其他所有者使用者就是 other 使用者類

舉例說明

常見幾種檔案許可權組成

http - rwx --- --- 檔案所有者對檔案具有讀取、寫入和執行的許可權。 - rwx r-- r-- 檔案所有者具有讀、寫不執行的許可權,使用者組裡使用者及其他使用者則具有讀取的許可權 - rw- rw- r-x 檔案所有者不同組使用者對檔案具有讀寫的許可權,而其他使用者僅具有讀取和執行的許可權。 d rwx --x --x 目彔所有者具有讀寫不迚入目錄的許可權,其他使用者近能迚入該目錄,卻無法讀取任何資料。 d rwx --- --- 除了目錄所有者具有完整的許可權之外,其他使用者對該目錄完全沒有任何許可權。

1) 每個使用者都擁有自己的與屬目彔,通常放置 /home 下

```bash [[email protected] ~]$ ll /home/ total 4 drwx------. 19 kiosk kiosk 4096 Nov 20 14:04 kiosk

注:[rwx------] 表示目錄所有者本身擁有的許可權,其它使用者是無法進入的, root可以.

```

2) 你以什麼使用者身份登入,那麼你建立的檔案和目錄,自動成為該檔案的所屬主和組

bash [[email protected] ~]$ touch file1.txt [[email protected] ~]$ ll file1.txt -rw-rw-r--. 1 kiosk kiosk 0 Nov 21 05:22 file1.txt

更改檔案的屬主和屬組

改變檔案的所屬關係用到命令

  • chown:可以用來改變檔案(或目錄)的屬主
  • chgrp:可以用來改變檔案(或目彔)的預設屬組
  • 如果要對目錄進行操作,加選項 -R

語法: chown user:group filename 比如:chown hr:san a.txt 把檔案的屬主和屬組改為 hr,san chown user filename 比如:chown san a.txt 把檔案的屬主改為 san 使用者 chown :group filename 比如: chown :miao a.txt 把檔案的屬組改為 miao 這個組 chown user: filename 比如:chown san: a.txt 自動繼承這個使用者所有的組 chgrp hr filename 比如: chgrp hr f.txt -R : 遞迴(目錄下的所有內容都更改,否則只修改目錄)

一個檔案只有讀的許可權,擁有者是否可以寫這個檔案?

```bash [[email protected] ~]$ touch a.txt

[[email protected] ~]$ ll a.txt -rw-rw-r--. 1 kiosk kiosk 0 Nov 21 05:27 a.txt

[[email protected] ~]$ echo hello > a.txt

[[email protected] ~]$ cat a.txt hello

在另一個終端上,以 root 身份登入

[[email protected] ~]$ su -

[[email protected] ~]# chmod 000 /home/kiosk/a.txt

[[email protected] ~]# ll /home/kiosk/a.txt ----------. 1 kiosk kiosk 6 Nov 21 05:27 /home/kiosk/a.txt

回到以 kiosk 身份登彔的終端

[[email protected] ~]$ echo demo >> a.txt bash: a.txt: Permission denied

在另一個終端上,以 root 身份登入

[[email protected] ~]# cat /home/kiosk/a.txt hello

[[email protected] ~]# echo demo >> /home/kiosk/a.txt

[[email protected] ~]# cat /home/kiosk/a.txt hello demo ```

5.gif