CentOS7學習筆記(六) 使用者許可權管理

Java小學生丶發表於2021-12-23

使用者、使用者組與檔案的關係

在瞭解許可權管理之前先建立一些使用者和使用者組便於後續學習,在root使用者下操作:

# 建立兩個使用者組
[root@localhost data]# groupadd kaifa
[root@localhost data]# groupadd ceshi

# 建立三個使用者,指定他們進入的使用者組
[root@localhost data]# useradd -g kaifa zhangsan
[root@localhost data]# useradd -g kaifa lisi
[root@localhost data]# useradd -g ceshi wangwu

# 設定三個使用者的密碼,這裡我統一設定為123
[root@localhost data]# passwd zhangsan
[root@localhost data]# passwd lisi
[root@localhost data]# passwd wangwu

登入張三使用者,在~目錄中建立一個1.txt檔案,關係如下圖所示

[zhangsan@localhost ~]$ touch 1.txt
[zhangsan@localhost ~]$ ls
1.txt

image

環境已經模擬好了,現在分析一下1.txt檔案和這幾個使用者之間的關係:

  • 張三建立了這個檔案,那麼張三就是該檔案的所有者

  • 張三建立了這個檔案,同時張三屬於開發組,那麼這個檔案也屬於開發組,開發組下除了張三還有李四,那麼李四就是同組的使用者

  • 王五既不是檔案的所有者,和檔案也不屬於同一個組,那麼對於檔案來說王五就是其他組的使用者

image

如果不知道該檔案的所有者是誰,屬於哪個組,可以用ls -l或者ll命令來檢視

image

通過分析可得知,檔案與使用者可以有三種關係:所有者、同組,其他組,請務必牢記這三種關係,他與許可權有著密切的關聯

許可權的基本知識

許可權代表著用於對檔案/資料夾操作的控制,可以控制使用者是否有權利檢視檔案、修改檔案以及執行檔案

如何檢視許可權資訊

詳細的許可權資訊,在我們使用ll命令的時候就可以看到,列表的第一列就代表許可權資訊

image

可以發現他給出的許可權資訊為-rw-r--r--,完整的許可權資訊是由四部分組成,將他們拆開後如下所示

image

後面的三組就不細說了,結合之前說的就能理清,這裡介紹下第一位檔案型別,簡單建立幾個檔案觀察首位的變化

如果是資料夾,首位就是d,如果是檔案首位就是-,如果是軟連線首位就是l...... 更多的這裡就不細說了
[zhangsan@localhost ~]$ touch 1.txt
[zhangsan@localhost ~]$ mkdir -p files/1/2/3
[zhangsan@localhost ~]$ ln -s files/1/2/ 3
[zhangsan@localhost ~]$ ll
總用量 0
-rw-r--r--. 1 zhangsan kaifa  0 12月 22 16:35 1.txt
-rw-r--r--. 1 zhangsan kaifa  0 12月 22 16:35 2.txt
lrwxrwxrwx. 1 zhangsan kaifa 10 12月 22 16:34 3 -> files/1/2/
drwxr-xr-x. 3 zhangsan kaifa 15 12月 22 16:33 files

現在回過頭來看1.txt的許可權資訊-rw-r--r--,首先通過首位可以看出他是一個普通檔案,接下來分析一下他的許可權資訊

  • zhangsan作為所有者,可以對檔案進行檢視和編輯

  • lisi與檔案屬於同一個組,可以對檔案進行檢視操作

  • wangwu屬於其他組,同樣可以對檔案進行檢視

然後切換到/home目錄,再檢視該目錄下的資料夾的許可權資訊

[zhangsan@localhost ~]$ cd /home
[zhangsan@localhost home]$ ll
總用量 0
drwx------. 3 lisi     kaifa  78 12月 22 14:24 lisi
drwx------. 3 wangwu   ceshi  78 12月 22 14:24 wangwu
drwx------. 6 zhangsan kaifa 155 12月 22 16:35 zhangsan

之前說過每個目錄代表著一個使用者,而每個目錄的許可權都為drwx------,也就是說除了目錄所有者之外任何人都沒有許可權檢視該目錄,這也就解釋了為什麼不能檢視其他使用者目錄的問題

許可權資訊在檔案/資料夾上的作用

許可權資訊在檔案和在資料夾上起到的作用分別是不一致的,具體如下

當目標是一個檔案時:

  • r 可以控制是否有許可權檢視該檔案的內容

  • w 可以控制是否有許可權修改檔案的內容,需要注意的是就算有修改許可權也並不代表可以刪除該檔案,判斷一個檔案是否允許被刪除需要觀察該檔案所在的目錄的許可權資訊

  • x 可以控制是否擁有執行檔案的許可權

當目標是一個目錄時:

  • r 可以控制是否有許可權移動到該目錄下,是否有許可權檢視目錄下的檔案

  • w 可以控制是否有許可權增刪目錄下的檔案

  • x 可以控制是否擁有執行檔案的許可權

修改許可權資訊

由於修改許可權資訊本身需要的許可權較大,這裡建議在root使用者下進行操作,在修改許可權資訊之前先看一眼這個表格的內容

中文解釋 英文全拼 簡寫字母 許可權數字
可讀 read r 4
可寫 write w 2
可執行 execute x 1

設定許可權資訊

許可權包含可讀、可寫、可執行三種操作,而所有者、同組、其他組又分別有著各自的許可權,那麼修改許可權就是圍繞著這幾個基本屬性進行設定的

設定許可權資訊的命令使用方法為chmod [許可權資訊] [目標檔案/資料夾],看一下下面這行命令

# u=rw:u的全拼為user所有者,所有者擁有r讀和w寫的許可權
# g=r:g的全拼為group同組,同組擁有r讀的許可權
# o=r:o代表other其他組,其他組擁有r讀的許可權
[root@localhost zhangsan]# chmod u=rw,g=r,o=r 1.txt

# 所有者擁有所有許可權,本組擁有讀寫全選,其他組擁有讀許可權
[root@localhost zhangsan]# chmod u=rwx,g=rw,o=r 1.txt

# 所有者保持不變,同組只能讀,其他組只能讀
[root@localhost zhangsan]# chmod g=r,o=r 1.txt

修改許可權資訊

除開使用等號來設定許可權之外,還可以使用加號和減號來修改許可權,如下

# 本組設定只讀的許可權
[root@localhost zhangsan]# chmod g=r 1.txt

# 本組新增執行的許可權
[root@localhost zhangsan]# chmod g+x 1.txt

# 其他組新增修改和執行的許可權
[root@localhost zhangsan]# chmod o+wx 1.txt

# 其他組移除修改和執行的許可權
[root@localhost zhangsan]# chmod o-wx 1.txt

# 本組新增讀的許可權移除執行的許可權
[root@localhost zhangsan]# chmod g+w-x 1.txt

數字方式設定許可權資訊

除開上面的兩種方法之外,還可以使用數字代表許可權資訊,上面的表格中記錄了每個許可權代表的數字,將需要賦予的許可權的數字相加就可以了

數字設定許可權的命令使用規範為chmod [所有者許可權][同組許可權][其他組許可權],如下所示

# 所有者有讀寫的許可權(4+2),同組與其他組有讀的許可權(4)
[root@localhost zhangsan]# chmod 644 1.txt

# 所有者有讀寫執行的許可權(4+2+1),同組有讀的許可權(4),其他組沒有任何許可權(0)
[root@localhost zhangsan]# chmod 740 1.txt

# 所有者、同組、其他組全部擁有所有許可權(4+2+1)
[root@localhost zhangsan]# chmod 777 1.txt

修改檔案所有者以及檔案所有組

檔案的操作全選與所有者和所有組有著密切的關係,可以通過ll命令檢視這些資訊,當然這些資訊也可以修改

# 修改檔案所有者為wangwu
[root@localhost zhangsan]# chown wangwu 1.txt

# 修改檔案所在組為測試
[root@localhost zhangsan]# chgrp ceshi 1.txt

需要注意的是修改檔案所有者後,檔案所在組並不會隨著所有者的改變而改變,想要修改檔案所在組需要手動執行命令才可以進行修改

相關文章