權限的含義
- 權限是指某個特定的用戶具有特定的系統資源使用權力。
為什么要有權限
- 因為系統中不可能只存在一個root用戶,一定會存在多個用戶,為了保護每個登陸用戶的隱私和工作環境,所以就有了權限。
權限與用戶之間的關系
-
在Linux系統中,針對文件定義了三種身份,分別是屬主(owner)、屬組(group)、其他人(others),每一種身份又對應三種權限,分別是可讀(readable)、可寫(writable)、可執行(excutable)。
圖形表述
當一個用戶訪問文件流程如下
- 判斷用戶是否為文件所有者,如果是則按所有者的權限進行訪問
- 判斷用戶是否為文件所有組成員,如果是則按組的權限進行訪問
- 如果不是所有者,也不是該文件所屬組,則按匿名權限進行訪問
含義
字母 | 含義 | 對應權限 |
---|---|---|
r(read) | 讀取權限 | 4 |
w(write) | 寫入權限 | 2 |
x(execute) | 執行權限 | 1 |
-(沒有權限) | 沒有權限 | 0 |
2.權限設置示例
文件示例: rwxrw-r-- alice hr file1.txt
Q1: alice對file1文件擁有什么權限?
答:rwx
Q2: jack 對 file1.txt 文件有什么權限? 前提:jack 屬于 hr 組
答:rw
Q3: tom 對 file1.txt 文件有什么權限?
答:r
方式一、number
針對文件最高設定為 777 但是一般都是666
選項: -R 遞歸修改
[root@oldboy ~]# touch file
[root@oldboy ~]# chmod 644 file
[root@oldboy ~]# chmod 600 file
[root@oldboy ~]# ll file
-rw------- 1 root root 0 Apr 13 16:34 file
#針對目錄設定權限
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/ #修改目錄允許所有人訪問
[root@oldboy ~]# chmod -R 755 dir/ #修改目錄及子目錄權限
[root@oldboy ~]# ll -d dir/
drwxr-xr-x 2 root root 6 Apr 13 16:34 dir/
方式二、ugo
相當于數字***
[root@oldboy ~]# touch file #創建文件
[root@oldboy ~]# chmod a=rwx file #給所有人添加讀寫執行權限
針對目錄設定權限
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/ #修改目錄允許所有人訪問
[root@oldboy ~]# chmod -R 755 dir/ #修改目錄及子目錄權限
[root@oldboy ~]# ll -d dir/
drwxr-xr-x 2 root root 6 Apr 13 16:34 dir/
1.設定屬主(讀寫) 屬組(讀)權限 其他人(無) rw-r------翻譯為數字 640
[root@oldboy ~]# chmod 640 1.txt
[root@oldboy ~]# ll 1.txt
-rw-r-----. 1 root root 672 Jul 30 16:17 1.txt
2、設定屬主(讀寫) 屬組(無)權限 其他人(無)
[root@oldboy ~]# chmod 600 1.txt
[root@oldboy ~]# ll 1.txt
-rw-------. 1 root root 672 Jul 30 16:17 1.txt
3、針對目錄設定權限: 777
選項: -R遞歸修改
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/
[root@oldboy ~]# chmod -R 755 dir/
[root@oldboy ~]# ll -d dir/
drwxr-xr-x. 2 root root 6 Aug 7 16:13 dir/
例題:針對 hh 部門的訪問目錄/home/hh 設置權限,要求如下:
1.root 用戶和 hr 組的員工可以讀、寫、執行
2.其他用戶沒有任何權限
[root@oldboy ~]# mkdir /home/hh
[root@oldboy ~]# groupadd hh
[root@oldboy ~]# useradd hh01 -G hr
[root@oldboy ~]# useradd hh02 -G hr
[root@oldboy ~]# chgrp hh /home/hh
[root@oldboy ~]# chmod 770 /home/hh
[root@oldboy ~]# ll -d /home/hh
drwxrwx---. 2 root hh 6 Aug 7 16:25 /home/hh
3、權限設置案例
在Linux中權限對文件和對目錄的影響是有不同區別的。
權限 | 對文件的影響 | 對目錄的影響 |
---|---|---|
讀取權限(r) | 具有讀取\閱讀文件內容權限 | 具有瀏覽目錄及子目錄 |
寫入權限(w) | 具有新增、修改文件內容的權限 | 具有增加和刪除目錄內文件 |
執行權限(x) | 具有執行文件的權限 | 具有訪問目錄的內容(取決于目錄中文件權限) |
權限驗證
針對文件:
r: 能讀取文件內容
cat head less tail more
w: 能寫入文件 (不能看)
vim
x: 能執行文件 (如果沒有r權限,單有x 沒有用)
rw: 能查看文件,能編輯文件. 不能執行.不能刪除,不能移動,不能復
制
rx: 能查看文件,不能編輯,能執行. 不能刪除,不能移動,不能復制 (2)
rwx: 能查看文件,能編輯文件,能執行. 不能刪除\移動\復制 --->使用
較少
針對目錄的權限:
r: 具有瀏覽目錄的權限,無法進入目錄,使用ls 查看目錄下的文件會
報錯,但會顯示文件名稱, 如果使用 ls-l 只能看到文件名稱,其他的
全部無法查看.
w: 什么權限也沒有
x: 能進入目錄,其他什么也沒有
rx: 能進入目錄,能查看目錄下的文件,至于操作文件,需要看文件本
身的權限.
rw:
rwx: 如果目錄賦予了w權限,則該目錄下的文件可以復制\刪除\移
動\修改\
文件使用最多: rw=6 rx=5 644
目錄使用最多: rx = 5 755
屬主和屬組變更
準備環境,創建文件和目錄
[root@oldboy ~]# mkdir dir/test1 && touch dir/file
示例1: 修改所屬主為bin
[root@oldboy ~]# chown bin dir/
示例2: 修改所屬組為adm
[root@oldboy ~]# chown .adm dir/
示例3: 遞歸修改目錄及目錄下的所有文件屬主和屬組
[root@oldboy ~]# chown -R root.root dir/