
Linux當中的權(quán)限問題
Linux權(quán)限的概念
在Linux下有兩種用戶,分別是超級用戶(root)和普通用戶。
超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$“。
超級用戶可以在Linux下做任何事情,幾乎不受限制,而普通用戶一般只能在自己的工作目錄下(/home/xxx)工作,以及在系統(tǒng)上做有限的工作。也就是說,權(quán)限的概念都是用來限制普通用戶的,幾乎不限制超級用戶。
切換用戶賬號
命令:su - [用戶名]
功能:切換用戶。
例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用 su root(root可以省略),此時系統(tǒng)會提示輸入root用戶的口令。
從普通賬號切換為root賬號。
從root賬號切換為普通賬號。
切換用戶后,若想切回上次的用戶,可通過Ctrl+D實現(xiàn)。
su只是單純的進行了身份的切換,工作的目錄并沒有發(fā)生改變
su -相當于讓我們的root重新登錄,默認處在我們的家目錄下,也就是/root
如何僅提升當前指令的權(quán)限
對單條指令進行提權(quán),某些指令在操作時,會顯示權(quán)限不夠,指令請求失敗,這時如果要切換到root用戶來進行訪問的話,有些太麻煩了,因為我們只需要對一條指令進行提權(quán),沒必要再切換成root用戶來訪問。這時我們就可以將sudo+command的方式來對指令進行提權(quán),注意我們這里輸入的是普通用戶的密碼,并非root用戶的密碼
語法: sudo?指令
功能: 提升當前指令的權(quán)限。
例如,我現(xiàn)在要以一名普通用戶的身份,修改另一個普通用戶的賬號密碼。
該提示說你沒有被超級用戶(root)添加到信用列表當中,所以該條指令的權(quán)限得不到提升,只有當你被超級用戶添加到信任列表后,你才擁有提升當前指令權(quán)限的能力。
如何將普通用戶添加到信任列表
那么首先你得先切換到超級用戶,只有超級用戶才有權(quán)力將普通用戶添加到信任列表。
Linux權(quán)限管理
文件訪問者的分類(人)
對于用戶來說,權(quán)限可以將用戶分為三大類:
1)文件和文件目錄的所有者(文件擁有者)。
2)文件擁有者所在的組的用戶(文件所屬組)。
3)其他用戶(other)。
注意:
1)對于某一文件而言,其擁有者、所屬組和other就是由超級用戶(root)和普通用戶所扮演。
2)在Linux當中,所有用戶都要隸屬于某一個組,哪怕這個組只有你一個人(此時該組就以你的用戶名為組名)。
我們可以通過指令ll來查看某一文件或文件目錄的擁有者和所屬組。
注: 除了文件擁有者和文件所屬組之外的都叫other。
文件類型和訪問權(quán)限(事物屬性)
使用指令ll,我們可以看到前面有一串字符,這串字符實際上就代表著該文件的類型和屬性。
這串字符由10個字符組成的。其中第一個字符所代表的就是該文件的文件類型。
不同的字符代表不同的文件類型。
1)-:代表普通文件。
2)d:代表目錄。
3)l:代表鏈接文件(類似于Windows當中的快捷方式)。
4)b:代表塊設(shè)備文件(例如硬盤、光驅(qū)等)。
5)p:管道文件。
6)c:字符設(shè)備文件。
7)s:套接口文件。
注意: 在Linux當中,文件類型與文件后綴無關(guān)。
剩下的9個字符每三個為一組,分別代表該文件相對于其擁有者、所屬組以及other是否擁有某種屬性
每一組的三個字符的第一個字符代表該文件是否具有可讀屬性,第二個代表是否具有可寫屬性,第三個代表是否具有可執(zhí)行屬性。
若是具有可讀屬性,則第一個位置的字符為r;若是具有可寫屬性,則第二個位置的字符為w;若是具有可執(zhí)行屬性,則第三個位置的字符為x。若某一位置為字符 - ,則說明不具有對應(yīng)位置的屬性。
注意:1、位置是什么含義是確定的
2、每一個位置只有是或者否,具有指定的權(quán)限
r/- w/- x/-
Linux文件名后綴
文件的類型:Linux系統(tǒng)中文件名后綴沒有直接的意義,但是不代表不用
Linux操作系統(tǒng)可以不管這些文件的后綴,但并不代表操作該文件的軟件或其他編譯器不關(guān)心這些后綴,例如我們這里的gcc,他可無法識別你這.txt后綴的文件,所以它并不能夠編譯你這個文件
Linux中如何看待后綴 ?
看用戶需求
文件權(quán)限值的表示方法
- 字符表示方法
ll指令打印文件權(quán)限值時的表示方法就是字符表示法。例如
- 八進制數(shù)值表示法
字符表示法中的每一個字符所在位置所表示的結(jié)果只有兩種可能,要么為真,
要么為假,因此我們可以將這三個字符換為三個二進制位,進而換為一個八進制位進行表示。例如
文件訪問權(quán)限的相關(guān)設(shè)置方法
如何改變文件的訪問權(quán)限
語法: chmod?選項?權(quán)限?文件名或目錄名
功能: 設(shè)置文件的訪問權(quán)限。
常用選項: -R 遞歸修改目錄文件的權(quán)限。
chmod指令權(quán)限值的格式:
格式一: 用戶符號 +/-/= 權(quán)限字符
1)+:向權(quán)限范圍增加權(quán)限代號所表示的權(quán)限。
2)-:向權(quán)限范圍取消權(quán)限代號所表示的權(quán)限。
3)=:向權(quán)限范圍賦予權(quán)限代號所表示的權(quán)限。
用戶符號:
1)u:擁有者。
2)g:所屬組。
3)o:other。
4)a:所有用戶。
若要同時設(shè)置不同類用戶的訪問權(quán)限,則需用逗號隔開。
三位八進制數(shù)字
將對應(yīng)的八進制數(shù)轉(zhuǎn)換為二進制,進而設(shè)置對應(yīng)權(quán)限值。
如何改變文件的擁有者
語法: chown?選項?用戶名?文件名或目錄名
功能: 修改文件的擁有者。
常用選項: -R 遞歸修改目錄文件的擁有者。
修改文件的擁有者需要root用戶進行操作,如果是普通用戶則需要進行權(quán)限提升。
如何改變文件的所屬組
語法: chgrp?選項?用戶名?文件名或目錄名
功能: 修改文件的所屬組。
常用選項: -R 遞歸修改目錄文件的所屬組。
修改文件的所屬組需要root用戶進行操作,如果是普通用戶則需要進行權(quán)限提升。
也可以使用chown指令同時修改文件的擁有者和所屬組,將擁有者和所屬組的用戶名用冒號隔開即可。
如何修改文件的掩碼
我們查看新建的文件和目錄,它們都有自己默認的權(quán)限。
實際上,新建文件的默認權(quán)限為0666,新建目錄的默認權(quán)限為0777。其中第一位的0與特殊權(quán)限有關(guān),這里不展開講述,而后面三位就是權(quán)限的八進制數(shù)值表示方法,我們將其翻譯為字符表示方法。
創(chuàng)建出來的文件和目錄的權(quán)限值往往不是我們所翻譯出來的值,因為創(chuàng)建文件和目錄的時候還要受到umask的影響,如果默認權(quán)限是mask,則實際創(chuàng)建出來的文件權(quán)限是:mask&(~umask)
語法: umask?權(quán)限值
功能: 查看或修改文件掩碼。
我們可以通過指令umask查看文件默認掩碼。
將掩碼的的后三位八進制換算為二進制,然后對其進行按位取反。
將之前的新建文件的默認權(quán)限值和新建目錄的默認權(quán)限值分別與其進行按位與操作,得到的就是最終創(chuàng)建出來的文件和目錄的權(quán)限值。
換句話說就是凡是在umask中出現(xiàn)的權(quán)限位,都不能在最終權(quán)限中出現(xiàn)。
通過修改umask來設(shè)置文件的訪問權(quán)限。
注意: 超級用戶的默認掩碼為0022,普通用戶的默認掩碼為0002。
總結(jié):
a.普通文件起始權(quán)限:666(沒有可執(zhí)行x權(quán)限)
b.目錄文件起始權(quán)限:777(rwx,能顯示,能進入,能創(chuàng)建)
c 最終權(quán)限: 系統(tǒng)為了更好的控制文件權(quán)限,會有默認的(權(quán)限掩碼umask)的概念。centos7下默認的掩碼為0002,第一個0先不管,我們看后三位數(shù)(002)就行了 ,002二進制序列就是000 000 010
d.權(quán)限掩碼: 在起始權(quán)限中,去掉在umask中出現(xiàn)的權(quán)限,不能影響其他任何權(quán)限!
結(jié)論:最終權(quán)限 = 起始權(quán)限 & (~umask)
目錄文件的權(quán)限
對于文件來說,其可讀可寫可執(zhí)行的屬性我們都知道分別代表著什么對應(yīng)的操作,那對于目錄來說可讀可寫可執(zhí)行又分別代表著什么呢?
1)可讀權(quán)限: 如果用戶沒有該目錄的可讀權(quán)限,則無法通過ls指令查看目錄中的文件內(nèi)容。
2)可寫權(quán)限: 如果用戶沒有該目錄的可寫權(quán)限,則無法通過一系列指令在目錄中創(chuàng)建文件或刪除文件。
3)可執(zhí)行權(quán)限: 如果用戶沒有該目錄的可執(zhí)行權(quán)限,則無法通過cd指令進入到目錄當中。
總結(jié):
目錄文件的權(quán)限
r : 是否允許我們查看指定目錄下的文件內(nèi)容
w:是否允許我們在當前目錄下進行創(chuàng)建,更改,刪除
x : 是否允許用戶進入對應(yīng)的目錄
那么這就會出現(xiàn)一個問題:
如果用戶擁有某目錄的可寫權(quán)限,就可以刪除該目錄當中的文件,不管該用戶是否擁有該文件的可寫權(quán)限,這顯然是不合理的。
為了解決這個不合理的問題,Linux引入了粘滯位的概念。
粘滯位
語法: chmod?+t?目錄名
功能: 給目錄加上粘滯位。
當一個用戶將某一個目錄加上粘滯位后,該目錄的權(quán)限值的最后一位變?yōu)樽址皌”。
在Linux中,用大寫字母T表示目錄啟用了粘滯位并且執(zhí)行權(quán)限未啟用,用小寫字母t表示目錄啟用了粘滯位并且執(zhí)行權(quán)限啟用。
當一個目錄被設(shè)置為粘滯位,則該目錄下的文件只能由:
1)超級用戶刪除。
2)該目錄的擁有者刪除。
3)該文件的擁有者刪除。
注意:粘滯位通常被用于目錄上,目的是限制其他用戶刪除該目錄下的文件或目錄。對于普通文件,粘滯位設(shè)置是無效的,因為它只對目錄文件起作用。
權(quán)限的匹配規(guī)則
權(quán)限的匹配規(guī)則是:只能匹配一個人,優(yōu)先匹配user,然后才是group,最重要的是他只會匹配一次。文章來源:http://www.zghlxwxcb.cn/news/detail-492829.html
如果你覺得這篇文章對你有幫助,不妨動動手指給點贊收藏加轉(zhuǎn)發(fā),給鄃鱈一個大大的關(guān)注
你們的每一次支持都將轉(zhuǎn)化為我前進的動力?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-492829.html
到了這里,關(guān)于修改文件權(quán)限chown/chgrp/chmod【Linux】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!