-rw-r--r--
- 第一個
-
是檔案型別(-
代表檔案,d
代表目錄,|
代表軟連結檔案) - 關於後9位
rw- | r-- | r-- |
---|---|---|
u所有者 | g所屬組 | o其他人 |
r是讀許可權,w是寫許可權,x是執行許可權
1、chmod
修改檔案的許可權
chmod [選項] 模式 檔名
- 選項
-R: 遞迴操作(賦予目錄許可權時,目錄下所有檔案都進行賦予許可權)
- 模式
[ugoa][+-=][mode=421]
[ugo]和[+-]的方式不方便,需要知道檔案的許可權是什麼,才能操作
a是all的意思,指所有人
- 檔案所有者加上執行許可權
chmod u+x cangls.av
- 檔案所屬組和其他人加上寫許可權
chmod g+w,o+w cangls.av
- 把上面給予的許可權去掉
chmod u-x,g-w,o-w cangls.av
- 等於方式賦予許可權
chmod u=rwx,g=rw cangls.av
- 以all和等於的方式賦予許可權,即所有人一樣的許可權,不現實,不常用
chmod a=rw cangls.av
- 最方便的許可權賦予方式
許可權的數字表示
r ---- 4
w ---- 2
x ---- 1
例如:
rwx | r-x | r-x |
---|---|---|
7 | 5 | 5 |
原因:
數字許可權其實是用3位二進位制表示的,其轉換為十進位制數對應的就是4,2,1
- 賦予檔案最高許可權
chmod 777 cangls.av
- 常用數字許可權
777 --- 代表所有人都有最高許可權
755 --- 執行檔案的常用許可權
644 --- 普通檔案的常用許可權
1、許可權對檔案的作用
- r: 讀取檔案內容(cat more head tail)
- w: 編輯、新增、修改檔案內容(vi echo)
但不包括刪除檔案
- x: 可執行
2、關於為什麼有檔案的寫許可權,卻不能刪除檔案的問題解釋
對於某個目錄或檔案擁有的許可權,針對的是裡面的內容,而不是檔案本身
由此,對檔案的刪除是對檔案所在目錄的寫,故必須有目錄的寫許可權才可以
3、許可權對目錄的作用
- r: 可以查詢目錄下檔名(ls)
- w: 具有修改目錄結構的許可權。如新建檔案和目錄,刪除此目錄下檔案和目錄,重新命名此目錄下檔案和目錄,剪下(touch rm mv cp)
- x: 可以進入目錄(cd)
4、總結
對檔案來講: 最高許可權是 x(執行)
對目錄來講: 最高許可權是 w(寫)
對檔案要少賦執行許可權,對目錄要少賦寫許可權
- 對於目錄的許可權
對目錄僅賦予讀許可權沒有意義
對目錄僅賦予執行許可權沒有意義
有意義的三種許可權: 0(沒有任何許可權)、5(讀和執行,基本許可權)、7(讀、寫和執行,最高許可權)
5、舉個例子哈(一步一步來看)
- root下建立一個使用者,並賦予密碼
[root@localhost ~]# useradd user1
[root@localhost ~]# passwd user1
- 另外再登入一個shell,使用者是user1
- root下進入user1的家目錄,並建立測試目錄和檔案
[root@localhost ~]# cd /home/user1
[root@localhost user1]# mkdir 123
[root@localhost user1]# touch 123/abc
此時目錄123的許可權是:
drwxr-xr-x
(755)
- root下修改123目錄的許可權和abc檔案的許可權,使其他人的許可權為0
[root@localhost user1]# chmod 750 123
[root@localhost user1]# chmod 640 123/abc
- 此時user1下不能進入123目錄和檢視123目錄
- root下修改123目錄的許可權,使其他人的許可權為僅讀
[root@localhost user1]# chmod 754 123
- 此時user1下不能進入123目錄,但檢視123目錄亂碼,不能用
- root下修改123目錄的許可權,使其他人擁有基本許可權
[root@localhost user1]# chmod 755 123
- 此時user1下能查能進入123目錄,但是不能在裡面建立、刪除檔案或目錄,並且對abc檔案沒有讀寫執行許可權
- root下修改abc檔案,使其他人擁有隻讀許可權
[root@localhost user1]# chmod 644 123/abc
- 此時user1下可以讀abc內容,但不能執行和修改
- root下修改abc檔案,使其他人擁有讀寫許可權
[root@localhost user1]# chmod 646 123/abc
- 此時user1下可以讀和修改abc內容,但不能執行,且不能刪除此檔案,因為123目錄對於user1沒開放寫許可權
- root下修改123目錄的許可權,使其他人擁有最高許可權
[root@localhost user1]# chmod 757 123
- 此時user1下可以在123目錄下,建立和刪除檔案
6、我的總結
- 針對目錄
755是最常用的許可權設定方式,(目錄所有者可以刪除和建立目錄下檔案,其他人只能進入看看)
稍微嚴謹一點是750,其他人進都進不來
極端嚴謹一點是700,就我自己能進能看能改,其他所有拒之門外
- 針對普通檔案
644是最常用的許可權設定方式,(檔案所有者能看能改,其他人只能看)
640是其他人不能看不能改
600是其他所有人不能看不能改
- 針對可執行檔案
754是最常用的許可權設定方式,(檔案所有者可以看改執行,組內可以執行,其他人只能看)
750、740、700都是可以的
- 還有一點
檔案所有者必須為7或者是6,要不就是傻逼
1、chown
修改檔案的所有者
chown 使用者名稱 檔名
例如:
chown ds fengj.av
- 同時改變所屬組
chown root:root fengj.av
2、chgrp
修改檔案的所屬組
chgrp 組名 檔名
例如:
chgrp group1 fengj.av
完全可以用chown改變所屬組,因此這個命令作用就不是那麼重要了
3、讓使用者對檔案及目錄擁有一定的許可權
- 要求
擁有一個av目錄
讓加藤老師擁有所有的許可權(7)
讓本課程學員有檢視的許可權(5)
其他所有人不許檢視這個目錄(0)
4、總結
- 分配檔案基本許可權時,核心原則:
在最小許可權情況下能夠實現要求即可!
嚴謹不負責任的賦777這樣的二逼許可權!
Windows在目錄中建立檔案是繼承的目錄許可權,Linux則不是
1、umask
檢視預設許可權
umask
返回:
0022
第一位0: 檔案特殊許可權
022: 檔案預設許可權
- 檔案預設許可權
檔案預設不能建立為執行檔案,必須手工賦予執行許可權
所以檔案預設許可權最大為666
預設許可權需要換算成字母再相減
建立檔案之後的預設許可權,為666減去umask值
例如:
檔案預設最大許可權666,umask值022
-rw-rw-rw- 減去 -----w--w- 等於 -rw-r--r--
再例如:
檔案預設最大許可權666,umask值033
-rw-rw-rw- 減去 -----wx-wx 等於 -rw-r--r--
- 目錄的預設許可權
目錄預設許可權最大為777
預設許可權需要換算成字母再相減
建立檔案之後的預設許可權,為777減去umask值
例如:
目錄預設最大許可權為777,umask值022
-rwxrwxrwx 減去 -----w--w- 等於 -rwxr-xr-x
- 修改預設許可權
umask 0033
命令修改只是臨時生效,想要永久生效需要修改
/etc/profile
檔案
本作品採用《CC 協議》,轉載必須註明作者和本文連結