文章目錄
一、文件類型、權限、所屬用戶與組詳細講解
1.文件類型
在Linux系統下面,文件類型(常見三種類型)
1.1普通文件類型
Linux中最多的一種文件類型, 包括 純文本文件(ASCII);二進制文件(binary);數據格式的文件(data);各種壓縮文件。第一個屬性爲 [-]
。
1.2目錄文件類型(類似win下的文件夾)
在linux中,它的思想是一切皆是文件
,目錄文件也就是Windows中的目錄,也就是能用 cd 命令進入的。第一個屬性爲 [d],例如 [drwxr-xr-x]。
1.3鏈接文件(類似Win下的快捷方式)
第一個屬性爲 [l],例如 [lrwxrwxrwx]。
2.文件權限及歸屬
2.1 權限分類
- 可讀:
r
- 可寫:
W
- 可執行(腳本,比如shell腳本):
x
- 特殊字符:
[-]
表示的是沒有任何權限
2.2 歸屬
文件的歸屬
擁有者 owner u
屬於組group g
其他人other 0
2.3 權限數字表示方法
rw- ->
二進制數字之和的方式
R 2^2 4
W 2^1 2
X 2^0 1
2.4 舉例說明
[jingkong@muguangjingkong ~]$ ll
total 8
-rw-rw-r--. 1 jingkong jingkong 14 Apr 15 04:59 readme
-rw-rw-r--. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
[-]
代表普通文件類型
後面九個字符分爲三組,表示針對不同用戶的權限關係
rw-
代表的是所有者(user)擁有的權限rw-
代表的是組羣(group)擁有的權限r--
代表的是其他人(other)擁有的權限
之後的jingkong jingkong
就是用戶擁有者了。
《Linux下的用戶、組和權限》這篇文章介紹很全面,下面是鏈接:
https://blog.csdn.net/qq_36119192/article/details/82228791#%E4%B8%80%EF%BC%9A%E7%94%A8%E6%88%B7%E5%92%8C%E7%BB%84%E4%BF%A1%E6%81%AF%E7%9A%84%E6%9F%A5%E7%9C%8B
二、權限命令chmod
1.簡介
chmod命令用於改變linux系統文件或目錄的訪問權限。
用它控制文件或目錄的訪問權限。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法
;另一種是包含數字的數字設定法。
Linux系統中的每個文件和目錄都有訪問許可權限,用它來確定誰可以通過何種方式對文件和目錄進行訪問和操作。
3.使用說明
3.1 權限範圍:
u :目錄或者文件的當前的用戶
g :目錄或者文件的當前的羣組
o :除了目錄或者文件的當前用戶或羣組之外的用戶或者羣組
a :所有的用戶及羣組
3.2 權限代號:
r :讀權限,用數字4表示
w :寫權限,用數字2表示
x :執行權限,用數字1表示
[-] :刪除權限,用數字0表示
s :特殊權限
3.3 用法
包含字母和操作符表達式的文字設定法
和包含數字的數字設定法
。
(1)文字設定法:
chmod [who] [+ | - | =] [mode] 文件名
(2)數字設定法
如果想讓某個文件的歸屬者有“讀/寫”二種權限,需要把4(可讀)+2(可寫)=6(讀/寫)
。
數字設定法的一般形式爲:
chmod [mode] 文件名
數字與字符對應關係如下:
r=4,w=2,x=1
若要rwx屬性則4+2+1=7
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=7。
3.4 修改文件權限
-rw-rw-r--. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
要滿足這樣的需求:
(1)對於同組
用戶來說,僅僅可讀
(2)對於其他
用戶來說,既不可讀也不可寫
[jingkong@muguangjingkong ~]$ chmod g-w readme.txt
[jingkong@muguangjingkong ~]$ ll
total 8
-rw-rw-r--. 1 jingkong jingkong 14 Apr 15 04:59 readme
-rw-r--r--. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
[jingkong@muguangjingkong ~]$ chmod o-r readme.txt
[jingkong@muguangjingkong ~]$ ll
total 8
-rw-rw-r--. 1 jingkong jingkong 14 Apr 15 04:59 readme
-rw-r-----. 1 jingkong jingkong 21 Apr 15 18:54 readme.txt
設定爲只有該文件擁有者可以執行 :
chmod u+x readme.txt
3.5 修改目錄權限
加入想一次修改某個目錄下所有文件的權限,包括子目錄中的文件權限也要修改,也就是說,我要修改xx文件夾的權限,xx文件夾中的子文件的權限也一併修改,要使用參數-R表示啓動遞歸處理。
- 舉例說明
[root@localhost ~]# chmod 700 /home /jingkong/readme.txt #僅把readme.txt目錄的權限設置爲700
[root@localhost ~]# chmod -R 744 /home/jingkong #表示將整個jingkong目錄與其中的文件和子目錄的權限都設置爲744
3.6 擴展_改變文件擁有者和所屬組
(1)命令
修改文件擁有者——chown
修改文件擁有者的命令自然是chown,即change owner
。chown功能很多,不僅僅能更改文件擁有者,還可以修改文件所屬組羣。如果需要將某一目錄下的所有文件都改變其擁有者,可以使用-R參數。
語法如下:
chown [-R] 賬號名稱 文件/目錄
chown [-R] 賬號名稱:組羣 文件/目錄
修改文件所屬組羣——chgrp
修改文件所屬組羣很簡單-chgrp命令,就是change group的縮寫(我們可以利用這些來記憶命令)
語法:
chgrp 組羣 文件名/目錄
(2)案例
- 修改所屬的組
#創建新的組和用戶
[root@muguangjingkong jingkong]# groupadd groupa
[root@muguangjingkong jingkong]# groupadd groupb
[root@muguangjingkong jingkong]# useradd -g groupa kaka
[root@muguangjingkong jingkong]# su - kaka
#新建兩個文件並查看所屬用戶和組
[kaka@muguangjingkong ~]$ touch filea
[kaka@muguangjingkong ~]$ touch fileb
[kaka@muguangjingkong ~]$ ll
total 0
-rw-r--r--. 1 kaka groupa 0 Apr 16 21:16 filea
-rw-r--r--. 1 kaka groupa 0 Apr 16 21:16 fileb
[kaka@muguangjingkong ~]$ chgrp groupb filea
chgrp: changing group of `filea': Operation not permitted
#在root用戶下才能改變所屬
[kaka@muguangjingkong ~]$ su
Password:
#改變 filea所屬的組
[root@muguangjingkong kaka]# chgrp groupb filea
[root@muguangjingkong kaka]# ll
total 0
-rw-r--r--. 1 kaka groupb 0 Apr 16 21:16 filea
-rw-r--r--. 1 kaka groupa 0 Apr 16 21:16 fileb
[root@muguangjingkong kaka]#
- 同時修改所屬組和用戶
chown 用戶:組 文件路徑
[root@muguangjingkong kaka]# chown jingkong:jingkong /home/kaka/fileb
[root@muguangjingkong kaka]# ll
total 0
-rw-r--r--. 1 kaka groupb 0 Apr 16 21:16 filea
-rw-r--r--. 1 jingkong jingkong 0 Apr 16 21:16 fileb