系列篇:
1. 組管理和權限管理
1.1 Linux 組基本介紹
在 linux 中每個用戶必須屬於一個組,不能獨立於組外,在 linux 中每個文件有所有者、所在組、其他組的概念。
- 所有者
- 所在組
- 其它組
- 改變用戶所在的組
示意圖:
1.2 文件/目錄 所有者
一般爲文件的創建者,誰創建了該文件,就自然的成爲該文件的所有者
1.2.1 查看文件的所有者
指令:ls -ahl
應用實例:
- 創建一個組 police,在創建一個用戶 tom,將 tom 放在 police 組, 然後使用 tom 來創建一個文件 ok.txt,看看情況如何
1.2.2 修改文件的所有者
指令:chown 用戶名 文件名
應用案例:
- 使用 root 創建一個文件 apple.txt,然後將其所有者修改成 tom
1.2.2 修改文件的所在的組
基本指令:chgrp 組名 文件名
應用實例:
- 使用 root 用戶創建文件 orange.txt,看看當前這個文件屬於哪個組,然後將這個文件所在的組,修改到 police 組。
1.3 其它組
除文件的所有者和所在組的用戶外,系統的其它用戶都是文件的其它組。
1.4 改變用戶所在組
在添加用戶時,可以指定將該用戶添加到哪個組中,同樣的使用 root 的管理權限可以改變某個用戶所在的組。
1.4.1 改變用戶所在組
1.4.1.1 基本指令
usermod -g 組名 用戶名
usermod -d 目錄名 用戶名 改變該用戶登陸的初始目錄
1.4.1.2 應用實例
- 創建一個土匪組(bandit)將 tom 這個用戶從原來所在的 police 組,修改到 bandit(土匪組)。
1.5 權限的基本介紹
ls -l 中顯示的內容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位說明
1)第 0 位確定文件類型(d,-,l,c,b)
2)第 1-3 位確定所有者(該文件的所有者)擁有該文件的權限。–User
3)第 4-6 位確定所屬組(同用戶組的)擁有該文件的權限。–Group
4)第 7-9 位確定其他用戶擁有該文件的權限。–Other
如下圖所示:
1.6 rwx 權限詳解
1.6.1 rwx 作用到文件
- 【r】代表可讀 read:可以讀取,查看
- 【w】代表可寫 write:可以修改,但是不代表可以刪除該文件,刪除一個文件的的前提條件是對該文件所在的目錄有寫權限,才能刪除該文件。
- 【x】代表可執行 execute:可以被執行
1.6.2 rwx 作用到目錄
- 【r】代表可讀 read:可以讀取,ls 查看目錄內容
- 【w】代表可寫 write:可以修改,目錄內創建+刪除+重命名目錄
- 【x】代表可執行 execute:可以進入該目錄
1.7 文件及目錄權限實際案例
ls -l 中顯示的內容如下:
-rwxrwr-- 1 root root 1213 Feb 2 09:39 abc
10 個字符確定不同用戶能對文件幹什麼
第一個字符代表文件類型:文件(-),目錄(d),鏈接(l)
其餘字符每3個一組(rwx),讀®寫(w)執行(x)
第一組rwx:文件擁有者的權限是讀、寫和執行
第二組rw-:與文件擁有者同一組的用戶的權限是讀、寫但不能執行
第三組r–:不與文件擁有者同組的其他用戶的權限只能讀,不能寫和執行
可用數字表示爲:r=4,w=2,x=1因此 rwx=4+2+1=7
1 文件:硬連接數,或者目錄下的子目錄數量
root 用戶
root 組
1213 文件大小(字節),如果是文件夾,顯示 4096 字節
Feb 2 09:39 最後修改日期
abc 文件名稱
1.8 修改權限 chmod 指令
1.8.1 基本說明
通過 chmod 指令,可以修改文件或者目錄的權限。
1.8.2 權限示意圖
1.8.3 變更權限
1.8.4 第一種方式:+、-、=變更權限
u:所有者、g:所有組、o:其他人、a:所有人(u、g、o的總和)
1)chmod u=rwx,g=rx,o=x 文件目錄命
2)chmod o+w 文件目錄名
3)chmod a-x 文件目錄名
案例演示
- 給 abc 文件的所有者讀寫執行的權限,給所在組讀執行權限,給其他組讀執行權限。
- 給 abc 文件的所有者除去執行的權限,增加組寫的權限
- 給 abc 文件的所有用戶只設置讀的權限
1.8.5 第二種方式:通過數字變更權限
數字變更權限的規則如下:
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目錄名
相當於 cmod 751 文件目錄名
案例演示:
- 將 /home/abc.txt 文件的權限修改成 rwxr-xr-x,使用數字的方式實現
1.9 修改文件所有者 chown
1.9.1 基本介紹
chown newowner file 改變文件的所有者
chown newowner:newgroup file 改變用戶的所有者和所有組
-R 如果是目錄,則使其下的所有子文件或目錄遞歸生效
1.9.2 案例演示
- 將 /home/abc.txt 文件的所有者修改成 tom
- 將 /home/kkk 目錄下的所有的文件和目錄的所有都修改成 tomc
1.10 修改文件所在組 chgrp
1.10.1 基本介紹
chgrp newgroup file 改變文件的所有組
1.10.2 案例演示
- 請將 /home/abc.txt 文件所在的組修改成 bandit
- 請將 /home/kkk 目錄下所有的文件和目錄的所在組都修改成 shaolin
1.11 最佳實踐—警察和土匪遊戲
police、bandit
jack,jerry:警察
xh,xq:土匪
- 創建組。
groupadd police
groupadd bandit - 創建用戶。
useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq - jack 創建一個文件,自己可以讀寫、本組人可以讀,其它組沒任何權限。
【r=4 w=2 x=1】640理解爲 6自己讀寫、4本組人讀、0其它組沒權限
- jack 修改該文件,讓其它組人可以讀,本組人可以讀寫。
- xh 投靠警察,看看是否可以讀寫。
首先修改xh的組
然後修改 jack 的目錄權限【同一組用戶具備rx讀、執行的全寫】
最後使用 xh 進入 jack 的目錄即可操作 jacko1.txt 文件
1.12 最佳實踐2—西遊記
-
建立兩個組(神仙,妖怪)
-
建立四個用戶(唐僧,悟空,八戒,沙僧),爲其設置密碼,把悟空、八戒放入妖怪組,唐僧、沙僧放入神仙組
-
用悟空建立一個文件 monkey.java 該文件要輸出 i am monkey
-
給八戒一個可以 rw 讀寫的權限
-
八戒修改 monkey.java 加入一句話 i am pig
首先修改 wukong 目錄同組 rx 權限
然後 bajie 進入 wikong 目錄修改 monkey.java 文件即可
-
唐僧沙僧對該文件沒有權限(默認情況下其它組沒有任何權限)
-
把沙僧放入妖怪組
-
讓沙僧修改 monkey.java ,加入一句話 “我是沙僧,我是妖怪!”