Linux權限命令詳解
文章目錄
- Linux權限命令詳解
- 一、什么是權限?
- 二、權限的本質
- 三、Linux中的用戶
- 四、linux中文件的權限
- 4.1 文件訪問者的分類(人)
- 4.2 文件類型和訪問權限(事物屬性)
- 五、快速掌握修改權限的做法【第一種】
- 5.1 修改擁有者的權限
- 5.2 修改所屬組的權限
- 5.3 修改other的權限
- 5.4 修改多個角色的權限
- 5.5 一鍵添加或刪除所有權限
- 5.6 更改文件的擁有者
- 5.7 更改文件的所屬組
- 5.8 同時更改擁有者和所屬組
- 六、快速掌握修改權限的做法【第二種】
- 6.1 八進制
- 七、文件類型
- 八、可執行權限
- 九、創建文件的默認權限
- 9.1 權限掩碼
- 9.2 修改umask
- 十、目錄的權限
一、什么是權限?
權限就是通過一定的條件,攔住一部分人,給另一部分人權利,來訪問某種資源,比如vip,門禁之類的
二、權限的本質
權限和人有關,權限和事物的屬性有關
權限=人+事物屬性有關【人也就是相當于角色】
三、Linux中的用戶
-
linux有root用戶【超級管理員用戶】,普通用戶,那么我們怎么切換這兩種用戶呢?
-
切換root用戶
su -
- 切換普通用戶就是su后面加個用戶名
su 用戶名
-
在linux中有三種“人”【角色】:擁有者,所屬組,other
-
其中第一個lin就是擁有者,第二個是所屬組,其他就是other
-
su 用戶名,是從root變成普通用戶,剛剛上面也說了
-
但是我不想直接變成root,但是我想以root的身份執行一個工作,怎么做呢?
- 在執行命令前加上一個sudo
- 那么為什么sudo對指令進行提權的時候,輸入的是我們自己密碼?那樣不是很不安全,用root身份想干啥干啥
- 默認普通目前無法執行sudo ,暫時不解決,之后用vim再來解決這個問題
四、linux中文件的權限
4.1 文件訪問者的分類(人)
- 文件和文件目錄的所有者:u—User(中國平民 法律題)
- 文件和文件目錄的所有者所在的組的用戶:g—Group(不多說)
- 其它用戶:o—Others (外國人)
4.2 文件類型和訪問權限(事物屬性)
-
文件的屬性權限一般有三種
- r,讀
- w,寫
- x,可執行權限
-
我們來看下面這里
[lin@shilin lesson1]$ ls -l
total 0
-rw-rw-r-- 1 lin lin 0 Dec 8 10:39 test.txt
[lin@shilin lesson1]$
- 其中
-rw-rw-r--
是七個字符,我們先不管第一個字符 - 來看后6個,33為一組,分別對應:擁有者,所屬組,other
- 第一個字符:是否具有讀權限,【如果是,就r,否則,就是-】
- 第二個字符:是否具有寫權限,【如果是,就是w,否則,就是-】
- 第二個字符:是否具有可執行權限,【如果是,就是x,否則,就是-】
五、快速掌握修改權限的做法【第一種】
-
一個文件的權限,誰能修改?
- 文件的擁有者
- root
-
用命令怎么修改呢
5.1 修改擁有者的權限
減擁有者的權限
chmod u-w test.txt
加擁有者的權限
chmod u+rw test.txt
5.2 修改所屬組的權限
減所屬組的權限
chmod g-rw test.txt
加所屬組的權限
chmod g+rw test.txt
5.3 修改other的權限
減other的權限
chmod o-rw test.txt
加other的權限
chmod o+r test.txt
5.4 修改多個角色的權限
那我想更改多個"人"【角色】的權限,怎么修改呢?
多個權限之間價格逗號即可~~【注意:一定是英文的!】
批量減少權限
chmod u-w,g-w test.txt
批量添加權限
chmod u+w,g+w,o+w test.txt
刪除所有權限
chmod u-rw,g-rw,o-rw test.txt
5.5 一鍵添加或刪除所有權限
- 這里的
a
就是all
的意思【所有】
添加所有權限
chmod a+r test.txt
刪除所有權限
chmod a-r test.txt
- 對于普通用戶,自身要受到對應權限的約束,即使這個文件是自己的!
- 對于root用戶,不受權限約束的!
- 對于其他用戶,文件對應的是other選項,這個選項是沒有讀和寫權限的
注意:對于文件的擁有者,如果刪除了文件的擁有者權限,但是所屬組的沒有刪除,它也會禁止讀寫操作
結論:權限只會匹配一次!
5.6 更改文件的擁有者
chown root test.txt
我們回到上面的那里
- 這個時候我們把擁有者的改成root用戶,但是所屬組還是原來的
結論:身份識別的時候只識別一次,一旦匹配成功就不繼續匹配了,如果失敗就繼續匹配
5.7 更改文件的所屬組
chgrp root test.txt
這個時候文件也就普通用戶都不屬于了
這里如果再加上other的讀和寫的權限,就又可以了~~
chmod o+rw test.txt
5.8 同時更改擁有者和所屬組
chown lin:lin test.txt
那么怎么沒有修改other的指令呢?
六、快速掌握修改權限的做法【第二種】
6.1 八進制
- 如上圖所示,如果有一個字符就代表
1
,如果是-
就代表0
我們想去掉所有人的所有權限可以這樣做
chmod 000 test.txt
賦予所有權限就是下面這條命令
chmod 777 test.txt
保留擁有者的讀寫權限
chmod 600 test.txt
七、文件類型
在windows使用的是后綴名來區分文件類型的
而在linux中是不通過后綴區分文件類型【不是linux不用后綴】
那么通過什么區分呢?
ls -l
第一個屬性列
- -:普通文件,文本文件,可執行程序,庫等都叫做普通文件
- d:目錄文件
- b:塊設備文件
- c:字符設備文件
- p:管道文件
- l:鏈接文件
我們來挨個介紹一下
- 第一個
-
普通文件
平時創建的文件就是普通文件
- 第二個
d
目錄文件
- 第三個
b
塊設備文件
這個典型的代表就是磁盤
ls -l /dev/vda
- 第四個
c
字符文件
這個終端文件我們在linux命令章節講過了,這里就不再贅述
ls -l /dev/pts/
- 第五個
p
管道文件
我們創建一個管道文件
mkfifo pipe
- 這里就可以通過管道文件來進行輸出
- 第六個
l
鏈接文件
ln -s /home/lin/lesson1/test.txt xx.link
這個鏈接文件也就是相當于創建了一個快捷方式,直接指向了這個文件
- 如果刪除了源文件,那么這個快捷方式也就不能用了
- 比如linux的根目錄就有很多的鏈接文件
八、可執行權限
我們了解了讀權限,寫權限,那么可執行權限是什么呢?如何理解?
是一個可執行的文件,也有可執行權限,才能執行
能執行 = 具有可執行權限 + 一個可執行文件
- 如果我們要進入一個目錄,需要什么權限? ---->
進入一個目錄,需要x權限
我們來驗證一下:
- 第一種情況:
- 第二種情況:
- 第三種情況:
- 可以看到去掉x權限就不能進入目錄了~~
小結一下:
- 進入一個目錄需要x權限
- 目錄的r權限:用戶能否查看指定目錄的文件信息
- 目錄的w權限:決定用戶是否能在指定的目錄內新建,修改,刪除文件
九、創建文件的默認權限
linux創建文件的時候,為什么好像有默認權限?為什么是我們看到的樣子?
- Linux創建的普通文件,起始權限是:0666,去掉x的
- Linux創建的目錄文件,起始權限是:0777,包含x的
- 再看上面的權限,我們的創建的普通文件也不是666,而是664,目錄文件也不是777,而是775
9.1 權限掩碼
umask
- 在創建文件的時候,要在起始權限中,過濾掉(不是簡單的減法)再umask中出現的權限
9.2 修改umask
umask 0000
- 修改了umask后,創建出來的文件權限也發生了改變,所以是uamsk影響了我們的默認權限
最終權限 = 起始權限 & (~umask)
umask:Linux中的權限掩碼!
十、目錄的權限
- 為什么我們普通人竟然可以刪除別人的文件(包括root)合理嗎?
-
刪除一個文件和目標文件有關系嗎? ---->沒有關系!!!
-
那么和誰有關系呢? ---- >和我所在的目錄有關系!!!
- 這個目錄是這個用戶的擁有者,在我自己的目錄里創建文件就要受到我管束~~
所以刪除文件是由這個目錄的擁有者來管理,刪除一個文件的本質就是修改這個目錄的內容
- 所以創建一個目錄的時候是默認去掉寫權限的,一個外來用戶進入到這個目錄是不能進行創建文件的~~
本期內容就到這里了,感謝大家的收看,歡迎三連~~