qt科技感ui界面sem優(yōu)化軟件哪家好
權限目錄
- 1. 前言
- 2. 權限
- 2.1 修改權限
- 2.2 有無權限的對比
- 2.3 另外一個修改權限的方法
- 2.3.1 更改用戶角色
- 2.3.2 修改文件權限屬性
- 3. 第一個屬性列
- 4. 目錄權限
- 5. 默認權限
1. 前言
在之前的一篇博客中分享了關于權限的一些知識,這次緊接上次的進行,有需要了解上次的可以點這個鏈接: link。
話不多說,繼續(xù)開始權限篇。
2. 權限
2.1 修改權限
我們需要先知道,一個文件的權限,誰能修改?
一般來說有兩個:一個是文件的擁有者,另外一個是root。
要修改文件的權限需要一個命令chmod
舉個例子:將a.txt中擁有者的權限中,去掉r。
我們來看一下:
chmod u-r a.txt
也可以同時去掉多個權限,比如:將b.txt中擁有者的rw都去掉
可以同時去掉,當然也可以同時加上:
將a.txt中擁有者的rwx都加上:
這里擁有者用u
表示,所屬組用g
表示,other用o表示。也可以全部都同時加減全限,此時用all
。
來看一個所屬組的例子:
去掉a.txt中所屬組r的權限:
chmod g-r a.txt
如果想同時操作多個對象,也是一樣的,舉個例子:將a.txt中擁有者去掉r,所屬組去掉w。
chmod u-r,g-w a.txt
所以我們可以更改一個人的一個權限,一個人的多個權限,多個人的一個權限,多個人的多個權限,不過組合時用逗號做分離。
如果給所有人都加上同一個權限,可以直接用all。
舉個例子:將b.txt中所有人都加上w。
chmod a+w b.txt
總之:
u,g,o位置可以隨便寫,但不建議。
2.2 有無權限的對比
用普通賬號創(chuàng)建一個文件t.txt
去掉文件的所有權限后,執(zhí)行讀文件和向文件寫入,發(fā)現(xiàn)都不行。
對于普通用戶,自身要受到對應權限的約束,即使這個文件是直接的。
當把t.txt中所有的權限全部去掉之后,root還是想寫入就能寫,想讀就能讀。
root賬號不受權限的約束。
當把賬號切換成普通用戶時,屬于other,沒有讀寫權限,我們發(fā)現(xiàn)不能讀寫t.txt。
所以說普通用戶是受到權限的約束的。
總之:權限存在的意義就是保證普通用戶的文件的一般安全性。
在身份識別的時候,只識別一次。
更改文件的擁有者,先切換到root賬號下。
把文件的擁有者改為root
chown root t.txt
給所屬組加上rw權限
當zxctscl不是擁有者時,自動匹配到后面的所屬組。
發(fā)現(xiàn)所屬組仍然可以讀寫。
把文件的所屬組也改為root
chgrp root t.txt
切換為普通賬號時,發(fā)現(xiàn)不能讀寫了:
給other加上rw權限
chmod o+rw t.txt
這時使用普通賬戶就能繼續(xù)進行讀寫。
所以說:訪問一個文件時,得先判定相對于這個文件來說是擁有者、所屬組還是other,然后再在這個33為一組特定的權限列表里,進行權限識別,然后才能決定到底能不能訪問這個文件。
2.3 另外一個修改權限的方法
2.3.1 更改用戶角色
用普通賬戶新建一個文件file.txt
想把文件的擁有者改為rjjjcph,但是不被允許:
所以說在把文件給別人時候,可能權限不允許,但是又要把文件給別人時,如果是普通賬戶就強制給,加上sudo
。而root賬號不需要加。
sudo chown rjjjcph file.txt
把指令進行提權,把文件給別人是強制給的。
把所屬組也改為rjjjcph:
那么怎么改回去呢?
直接sudo chown
sudo chown zxctscl:zxctscl file.txt
也可以將擁有者改為zxctscl,將所屬組改為root
sudo chown zxctscl:root file.txt
那么為什么不需要修改other呢?
但修改了擁有者和所屬組,那么other自然也就改變了。
2.3.2 修改文件權限屬性
在之前就談到:
有就對應1,沒有就對應0。
所以對于a.txt中的
擁有者: 110 -> 6
所屬組:110 -> 6
other:100 -> 4
用8進制表示就是664
所以可以用8進制來表示權限。
舉個例子:把所有人的所有權限都加上
chmod 777 a.txt
只想保留u和g的rw就是660:
chmod 660 a.txt
總之第二種修改文件權限屬性的方法就是
chmod 八進制 filename
3. 第一個屬性列
在window中是通過文件的后綴來判斷文件類型。
Linux并不是通過文件后綴來判斷的,那么它是怎么區(qū)別的呢?
通過第一個屬性列來區(qū)分。
d:文件夾
-:普通文件
l:軟鏈接(類似Windows的快捷方式)
b:塊設備文件(例如硬盤、光驅等)
p:管道文件
c:字符設備文件(例如屏幕等串口設備)
s:套接口文件
常見的就是-和d.
用mkdir
創(chuàng)建的目錄,就是以d開頭。
磁盤:
顯示器就是字符設備:
Linux系統(tǒng)不以文件后綴作為區(qū)分文件類型,但并不是代表gcc不需要。
所以說Linux!=gcc
也就是說Linux不區(qū)分文件類型,但是Linux上面的工具可能會區(qū)分。
所以我們可以對Linux的文件使用后綴。
4. 目錄權限
如果我們進入一個目錄,那么需要什么權限呢?
先去掉擁有者目錄的r,結果顯示能進入目錄:
所以進入一個目錄與r無關
但是不能查看指定目錄內(nèi)的信息
加上r,去掉w,看看能不能進入一個目錄?
發(fā)現(xiàn)是可以進入目錄的。
但是不能創(chuàng)建一個文件。
加上r,去掉w,看看能不能進入一個目錄?
發(fā)現(xiàn)不能進入目錄了。
總之:
目錄的r權限:用戶能否查看指定目錄內(nèi)的信息。
目錄的w權限:決定用戶是否能在指定目錄內(nèi)新建、修改、刪除文件。
目錄的x權限:決定用戶能否進入一個目錄
5. 默認權限
在Linux創(chuàng)建文件的時候,為什么好像有默認權限?為什么就是我們所看到的這樣?
創(chuàng)建普通文件時,起始權限是:0666,去掉x
創(chuàng)建目錄文件時,起始權限是:0777,包含x
我們使用umask
來看看默認值,不同的平臺可能會有不同,這個是正常的。
這個默認值代表創(chuàng)建文件時,要從起始權限中,過濾掉。
我們也可以修改默認值:
此時新的文件權限默認權限就改變了。
來計算一下普通文件,顯示的權限怎么來的:
先將umask
按位取反,在將666與取反之后的進行按位與,最后得到的就是664,剛好就是rw-r–r–
有錯誤請指出,大家一起進步吧!