Linux的權(quán)限管理操作

?????????? Linux的權(quán)限管理操作

一、權(quán)限概述

總述:Linux系統(tǒng)一般將文件可存/取訪問的身份分為3個類別:owner(擁有者)、group(和所有者同組的用戶)、others(其他人),且3種身份各有read(讀)、write(寫)、execute(執(zhí)行)等權(quán)限。

?1、權(quán)限介紹

什么是權(quán)限?

在多用戶(可以不同時)計(jì)算機(jī)系統(tǒng)的管理中,權(quán)限是指某個特定的用戶具有特定的系統(tǒng)資源使用權(quán)力,像是文件夾、特定系統(tǒng)指令的使用或存儲量的限制。

?在Linux中分別有讀、寫、執(zhí)行權(quán)限:

???????讀權(quán)限: 對于文件夾來說,讀權(quán)限影響用戶是否能夠列出目錄結(jié)構(gòu)

?????????????????????? 對于文件來說,讀權(quán)限影響用戶是否可以查看文件內(nèi)容??

???????寫權(quán)限: 對文件夾來說,寫權(quán)限影響用戶是否可以在文件夾下“創(chuàng)建/刪除/復(fù)制到/移動到”文檔??????????????????

?????????????????????? 對于文件來說,寫權(quán)限影響用戶是否可以編輯文件內(nèi)容

???????執(zhí)行權(quán)限: 一般都是對于文件來說,特別腳本文件。

???????????????????? 對于文件來說,執(zhí)行權(quán)限影響文件是否可以運(yùn)行。?

?????????????????? 對于文件夾來說,執(zhí)行權(quán)限影響對應(yīng)的用戶是否可以在文件夾內(nèi)執(zhí)行指令。

?2、身份介紹

?Owner身份(文件所有者,默認(rèn)為文檔的創(chuàng)建者) 由于Linux是多用戶、多任務(wù)的操作系統(tǒng),因此可能常常有多人同時在某臺主機(jī)上工作,但每個人均可在主機(jī)上設(shè)置文件的權(quán)限,讓其成為個人的“私密文件”,即個人所有者。因?yàn)樵O(shè)置了適當(dāng)?shù)奈募?quán)限,除本人(文件所有者)之外的用戶無法查看文件內(nèi)容。

?例如某個MM給你發(fā)了一封Email情書,你將情書轉(zhuǎn)為文件之后存檔在自己的主文件夾中。為了不讓別人看到情書的內(nèi)容,你就能利用所有者的身份去設(shè)置文件的適當(dāng)權(quán)限,這樣,即使你的情敵想偷看你的情書內(nèi)容也是做不到的。

?Group身份(與文件所有者同組的用戶) 與文件所有者同組最有用的功能就體現(xiàn)在多個團(tuán)隊(duì)在同一臺主機(jī)上開發(fā)資源的時候。

例如主機(jī)上有A、B兩個團(tuán)體(用戶組),A中有a1,a2,a3三個成員,B中有b1,b2兩個成員,這兩個團(tuán)體要共同完成一份報(bào)告F。由于設(shè)置了適當(dāng)?shù)臋?quán)限,A、B團(tuán)體中的成員都能互相修改對方的數(shù)據(jù),但是團(tuán)體C的成員則不能修改F的內(nèi)容,甚至連查看的權(quán)限都沒有。同時,團(tuán)體的成員也能設(shè)置自己的私密文件,讓團(tuán)隊(duì)的其它成員也讀取不了文件數(shù)據(jù)。在Linux中,每個賬戶支持多個用戶組。如用戶a1、b1即可屬于A用戶組,也能屬于B用戶組【主組和附加組】。

?Others身份(其他人,相對于所有者與同組用戶) 這個是個相對概念。

打個比方,大明、二明、小明一家三兄弟住在一間房,房產(chǎn)證上的登記者是大明(owner所有者),那么,大明一家就是一個用戶組,這個組有大明、二明、小明三個成員;另外有個人叫張三,和他們?nèi)龥]有關(guān)系,那么這個張三就是其他人(others)了。 同時,大明、二明、小明有各自的房間,三者雖然能自由進(jìn)出各自的房間,但是小明不能讓大明看到自己的情書、日記等,這就是文件所有者(用戶)的意義。

?Root用戶(超級用戶) 在Linux中,還有一個神一樣存在的用戶,這就是root用戶,因?yàn)樵谒杏脩糁兴鼡碛凶畲蟮臋?quán)限 ,所以管理著普通用戶。

?3、Linux的權(quán)限介紹 要設(shè)置權(quán)限,就需要知道文件的一些基本屬性和權(quán)限的分配規(guī)則。在Linux中,ls命令常用來查看文件的屬性,用于顯示文件的文件名和相關(guān)屬性。

?#ls -l 路徑 【ls -l 等價(jià)于 ll】

標(biāo)紅的部分就是Linux的文檔權(quán)限屬性信息。

?Linux中存在用戶(owner)、用戶組(group)和其他人(others)概念,各自有不同的權(quán)限,對于一個文檔來說,其權(quán)限具體分配如下:

十位字符表示含義:

?第1位:表示文檔類型,取值常見的有“d表示文件夾”、“-表示文件”、“l(fā)表示軟連接”、“s表示套接字”、“c表示字符設(shè)備”、“b表示塊狀設(shè)備”等等;

第2-4位:表示文檔所有者的權(quán)限情況,

第2位表示讀權(quán)限的情況,取值有r、-;

第3位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,

第4位表示執(zhí)行權(quán)限的情況,取值有x、-。

?第5-7位:表示與所有者同在一個組的用戶的權(quán)限情況,

第5位表示讀權(quán)限的情況,取值有r、-;

第6位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,

第7位表示執(zhí)行權(quán)限的情況,取值有x、-。

第8-10位:表示除了上面的前2部分的用戶之外的其他用戶的權(quán)限情況,

第8位表示讀權(quán)限的情況,取值有r、-;

第9位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,

第10位表示執(zhí)行權(quán)限的情況,取值有x、-。

注意:除了權(quán)限位上的rwx以及-之外,還有一些特殊的權(quán)限代碼“s”、“t”,這些不在本次考慮范圍內(nèi)。

權(quán)限分配中,均是rwx的三個參數(shù)組合,且位置順序不會變化。沒有對應(yīng)權(quán)限就用 – 代替。

例如:以下一個文檔權(quán)限是怎么樣的?

文檔類型是:文件夾?????????????????????? 所有者:讀寫執(zhí)行權(quán)限?????????????????? 同組用戶:讀執(zhí)行權(quán)限 其他人:讀執(zhí)行權(quán)限???????? 管理員:全部

二、權(quán)限設(shè)置(重點(diǎn))

?語法:#chmod 選項(xiàng) 權(quán)限模式 文檔

注意事項(xiàng):

常用選項(xiàng):

?-R:遞歸設(shè)置權(quán)限 (當(dāng)文檔類型為文件夾的時候)

?權(quán)限模式:就是該文檔需要設(shè)置的權(quán)限信息

文檔:可以是文件,也可以是文件夾,可以是相對路徑也可以是絕對路徑。

?注意點(diǎn):如果想要給文檔設(shè)置權(quán)限,操作者要么是root用戶,要么就是文檔的所有者。

?1、字母形式 給誰設(shè)置:

u:表示所有者身份owner(user)

?g:表示給所有者同組用戶設(shè)置(group)

?o:表示others,給其他用戶設(shè)置權(quán)限

?a:表示all,給所有人(包含ugo部分)設(shè)置權(quán)限

?如果在設(shè)置權(quán)限的時候不指定給誰設(shè)置,則默認(rèn)給所有用戶設(shè)置

權(quán)限字符:

?r:讀??????????? w:寫?????????? x:表示執(zhí)行 -:表示沒有權(quán)限

權(quán)限分配方式:

?+:表示給具體的用戶新增權(quán)限(相對當(dāng)前)

?-:表示刪除用戶的權(quán)限(相對當(dāng)前)

?=:表示將權(quán)限設(shè)置成具體的值(注重結(jié)果)【賦值】

例如:需要給/root/anaconda-ks.cfg文件(-rw-------.)設(shè)置權(quán)限,要求所有者擁有全部的權(quán)限,同組用戶擁有讀和寫權(quán)限,其他用戶只讀權(quán)限。

?答案: 所有者:全部權(quán)限(rwx) 同組用戶:讀寫(rw) 其他:只讀(r)

?#chmod u+x,g+rw,o+r /root/anaconda-ks.cfg

#chmod u=rwx,g=rw,o=r /root/anaconda-ks.cfg

提示:當(dāng)文檔擁有執(zhí)行權(quán)限(任意部分),則其顏色在終端中是綠色。

?#chmod ug=rwx 形式,如果有兩部分權(quán)限一樣則可以合在一起寫的 等價(jià)于:

?#chmod u=rwx,g=rwx

例如:如果anaconda-ks.cfg文件什么權(quán)限都沒有,可以使用root用戶設(shè)置所有人都有執(zhí)行權(quán)限,則可以寫成

?#chmod a+x anaconda-ks.cfg 等價(jià)于 #chmod +x anaconda-ks.cfg

#chmod a=x anaconda-ks.cfg

?#chmod ugo=x anaconda-ks.cfg

#chmod u+x,g+x,o+x anaconda-ks.cfg

案例:設(shè)置文件“~/yunwei/yunwei.txt”權(quán)限,要求所有者全部權(quán)限,同組用戶擁有讀權(quán)限、寫權(quán)限,其他人擁有讀權(quán)限

更改要求:所有者全部權(quán)限,同組用戶擁有讀權(quán)限、寫權(quán)限,其他人擁有讀權(quán)限、寫權(quán)限

?2、數(shù)字形式?

經(jīng)常會在一些技術(shù)性的網(wǎng)頁上看到類似于#chmod 777 a.txt 這樣的一個權(quán)限,這種形式稱之為數(shù)字形式權(quán)限(777)。

?讀:? r???? 4?? ?

寫:?? w??? ?2

執(zhí)行:x???? ?1

沒有任何權(quán)限:0

例如:需要給anaconda-ks.cfg設(shè)置權(quán)限,權(quán)限要求所有者擁有全部權(quán)限,同組用戶擁有讀執(zhí)行權(quán)限,其他用戶只讀。

所有者權(quán)限 = 全部權(quán)限 = 讀 + 寫 +執(zhí)行 = 4 + 2 + 1 = 7

同組用戶權(quán)限 = 讀權(quán)限 + 執(zhí)行權(quán)限 = 4 + 1 = 5 其

他用戶權(quán)限 = 讀權(quán)限 = 4

最終得出的結(jié)果是754

#chmod 754 anaconda-ks.cfg

面試題:用超級管理員設(shè)置文檔的權(quán)限命令是#chmod -R 731 aaa,請問這個命令有沒有什么不合理的地方?

?所有者 = 7 = 4 + 2 + 1 = 讀 + 寫 + 執(zhí)行

?同組用戶 = 3 = 2 + 1 = 寫 + 執(zhí)行

其他用戶 = 1 = 執(zhí)行

問題在權(quán)限731中3表示寫+執(zhí)行權(quán)限,但是寫又不必須需要能打開之后才可以寫,因此必須需要具備讀權(quán)限,因此權(quán)限不合理。以后建議各位在設(shè)置權(quán)限的時候不要設(shè)置這種“奇葩權(quán)限”。單獨(dú)出現(xiàn)2、3的權(quán)限數(shù)字一般都是有問題的權(quán)限

注意:在寫權(quán)限的時候千萬不要設(shè)置類似于上面的這種“奇葩權(quán)限”。如果一個權(quán)限數(shù)字中但凡出現(xiàn)2與3的數(shù)字,則該權(quán)限有不合理的情況。

3、注意事項(xiàng) 使用root用戶創(chuàng)建一個文件夾(/oo),權(quán)限默認(rèn),權(quán)限如下:

?需要在oo目錄下創(chuàng)建文件(oo/xx.txt),需要給777權(quán)限:

切換到y(tǒng)w03用戶(不是文檔所有者,也不是同組用戶,屬于other部分):

?問題1:yw03用戶是否可以打開oo/xx.txt文件?【能打開】

?問題2:yw03用戶是否可以編輯oo/xx.txt文件?【可以】

問題3:yw03用戶是否可以刪除oo/xx.txt文件?【不能】

?在Linux中,如果要刪除一個文件,不是看文件有沒有對應(yīng)的權(quán)限,而是看文件所在的目錄是否有寫權(quán)限,如果有才可以刪除。

三、屬主(zhu)與屬組(zu)設(shè)置

屬主:所屬的用戶(文件的主人),文檔所有者

屬組:所屬的用戶組

前面的那個root就是屬主?????????????? ?后面的那個root就是屬組

?這兩項(xiàng)信息在文檔創(chuàng)建的時候會使用創(chuàng)建者的信息(用戶名、用戶所屬的主組名稱)。

之所以需要設(shè)置這個:如果有時候去刪除某個用戶,則該用戶對應(yīng)的文檔的屬主和屬組信息就需要去修改(類似離職之前的工作交接)。

1、chown(重點(diǎn))

作用:更改文檔的所屬用戶(change owner)

語法:#chown -R 新的username 文檔路徑

案例:將先前設(shè)置的/oo目錄的所有者設(shè)置成成yw03

#chown -R yw03 /oo

#ll

?2、chgrp(了解)

?作用:更改文檔的所屬用戶組(change group)

?語法:#chgrp -R groupname 文檔的路徑

案例:將剛才oo目錄的所有用戶組名改為yw03

?#chgrp -R yw03 /oo

思考,如何通過一個命令實(shí)現(xiàn)既可以更改所屬的用戶,也可以修改所屬的用戶組呢? 答:可以實(shí)現(xiàn)的,通過chown命令???????? 語法:#chown -R username:groupname 文檔路徑

案例:將剛才oo的文檔的所屬組所屬用戶修改為root

?#chown -R root:root /oo

問題:zhangsan用戶使用自己的帳號創(chuàng)建文件index.html,并且當(dāng)時默認(rèn)的權(quán)限是644,后續(xù)管理員root將該文件的屬主改成了lisi,屬組改成lisi,則zhangsan對文件的操作權(quán)限有變化嗎?如果有權(quán)限是多少?(zhangsan和lisi不同組)

答:雖然沒有直接改權(quán)限,但是由于更改了屬組和屬主,則會間接的對zhangsan的權(quán)限產(chǎn)生影響。最新的權(quán)限是4(讀)。

?四、擴(kuò)展(1)

問題:reboot、shutdown、init、halt、user管理,在普通用戶身份上都是操作不了,但是有些特殊的情況下又需要有執(zhí)行權(quán)限。又不可能讓root用戶把自己的密碼告訴普通用戶,這個問題該怎么解決?

該問題是可以被解決的,可以使用sudo(switch user do)命令來進(jìn)行權(quán)限設(shè)置。Sudo可以讓管理員(root)事先定義某些特殊命令誰可以執(zhí)行。

默認(rèn)sudo中是沒有除root之外用戶的規(guī)則,要想使用則先配置sudo。

Sudo配置文件:/etc/sudoers

該文件默認(rèn)只讀,不允許修改,因此不能直接修改。

?a. 配置sudo文件請使用“#visudo”,打開之后其使用方法和vim一致

b. 配置普通用戶的權(quán)限

?Root表示用戶名,如果是用戶組,則可以寫成“%組名”

ALL:表示允許登錄的主機(jī)(地址白名單)

(ALL):表示以誰的身份執(zhí)行,ALL表示root身份

ALL:表示當(dāng)前用戶可以執(zhí)行的命令,多個命令可以使用“,”分割

?案例:創(chuàng)建test用戶,本身test用戶不能添加用戶,要求使用sudo配置,將其設(shè)置為可以添加用戶。

添加test用戶:

?注意:在寫sudo規(guī)則的時候不建議寫直接形式的命令,而是寫命令的完整路徑。 路徑可以使用which命令來查看

?語法:#which 指令名稱

在添加好對應(yīng)的規(guī)則之后就可以切換用戶,切換到普通用戶test,再去執(zhí)行:

?此時要想使用剛才的規(guī)則,則以以下命令進(jìn)行:

?#sudo 需要執(zhí)行的指令

?在輸入sudo指令之后需要輸入當(dāng)前的用戶密碼進(jìn)行確認(rèn)的操作(不是root用戶密碼),輸入之后在接下來5分鐘內(nèi)再次執(zhí)行sudo指令不需要密碼。

如果要刪除用戶則會提示: 因此要想實(shí)現(xiàn)刪除則必須先配置sudo規(guī)則


補(bǔ)充:在普通用戶下怎么查看自己具有哪些特殊權(quán)限呢?

?#sudo -l?????????????????? 表示list

最后:sudo不是任何Linux分支都有的命令,常見centos與ubuntu都存在sudo命令。

?軟連接:就是相當(dāng)于windows下面的快捷方式

Ln -s

-s:指定源文件是誰 后面接 連接目標(biāo)文件


接下來查看源文件里面會不會發(fā)生變化?

?第二步:修改原文件

查看目標(biāo)文件有沒有發(fā)生變化:

?刪除目標(biāo)文件:相當(dāng)于刪除快捷方式,對源文件沒有絲毫影響

現(xiàn)在刪除源文件看效果:


總結(jié):

軟連接

?Ln - s 原路徑 目標(biāo)路徑

?特點(diǎn):

1、就是相當(dāng)于win中的快捷方式

?2、刪除鏈接文件,源文件無影響

?3、刪除源文件,鏈接文件失效

?4、修改源文件\鏈接文件,內(nèi)容都發(fā)生改變

硬鏈接:

?修改目標(biāo)文件,并查看是否發(fā)生變化

刪源文文件:

硬鏈接

ln??? 源路徑??? 目標(biāo)路徑?

特點(diǎn):

1、刪除鏈接文件,源文件無影響

?2、刪除源文件文件,鏈接件無影響

3、修改源文件\鏈接文件,內(nèi)容都 發(fā)生改變。


>>:表示追加


2.歸檔文件和歸檔技術(shù)

1) 掌握歸檔的定義:歸檔(archiving)就是將許多文件(或目錄)打包成一個文件。

?2) 了解歸檔的目的:歸檔的目的就是方便備份、還原及文件的傳輸操作。

?3) 掌握tar命令的功能:將多個文件(也可能包括目錄,因?yàn)槟夸洷旧硪彩俏募┓旁谝黄鸫娣诺揭粋€磁帶或磁盤歸檔文件中。并且將來可以根據(jù)需要只還原歸檔文件中的某些指定的文件。 4) 掌握tar命令的常用選項(xiàng):

?c:創(chuàng)建一個新的tar文件。 t

:列出tar文件中目錄的內(nèi)容。

?x:從tar文件中抽取文件。

?f:指定歸檔文件或磁帶(也可能是軟盤)設(shè)備(一般都要選)。

?v:顯示所打包的文件的詳細(xì)信息,v是verbose的第1個字母。

z:使用gzip壓縮算法來壓縮打包后的文件。

?j:使用bzip2壓縮算法來壓縮打包后的文件


解壓:

-C表示指定目錄

?壓縮:

?4、文件的壓縮和解壓縮

1) 掌握壓縮的定義:壓縮就是將一個大的文件通過一些壓縮算法變成一個小文件。

2) 了解壓縮的目的:主要是縮小文件的大小,這樣會節(jié)省存儲文件的磁盤或磁帶的空間,另外在網(wǎng)絡(luò)上傳輸這些小文件也會減少網(wǎng)絡(luò)的瀏覽(也就是節(jié)省網(wǎng)絡(luò)的帶寬)。

3) 掌握解壓縮的定義:解壓縮就是將一個通過一些壓縮算法的文件恢復(fù)到壓縮之前的樣子。

?4) 掌握gzip命令和gunzip命令的用法舉例:

a) 例如:將文件file1壓縮成.gz格式的壓縮包應(yīng)該使用的命令為:gzip file1 –c > /路徑/name.gz b) 例如:將壓縮文件file1.gz解壓縮的命令為: gunzip file1.gz >

?5) 掌握bzip2命令和bunzip2命令的用法舉例:


?a) 例如:將文件file1壓縮成.bz2格式的壓縮包應(yīng)該使用的命令為:bzip2 file1 >

b) 例如:將壓縮文件file1.bz2解壓縮的命令為:

bunzip2 file1.bz2 >

5. 在使用tar命令的同時進(jìn)行壓縮和解壓縮(詳見linux系統(tǒng)管理P214)

?1) 掌握在使用tar命令的同時進(jìn)行壓縮和解壓縮的用法舉例

a) 例如:使用tar命令將arch目錄打包而且同時使用gzip的技術(shù)壓縮打包后文件的方法(打包后的文件名為arch.tar.gz): tar cvfz arch.tar.gz arch

b) 例如:使用tar命令將arch目錄打包而且同時使用bzip2的技術(shù)壓縮打包后文件的方法(打包后的文件名為arch.tar.bz2):tar cvfj arch.tar.bz2 arch

?6. 課后作業(yè)(用時65分鐘)

1) 將用戶信息數(shù)據(jù)庫文件和組信息數(shù)據(jù)庫文件縱向合并為一個文件/1.txt(覆蓋)

?2) 將用戶信息數(shù)據(jù)庫文件和用戶密碼數(shù)據(jù)庫文件縱向合并為一個文件/2.txt(追加)

?3) 將/1.txt、/2.txt兩個文件打包為/1.tar

4) 使用gzip命令壓縮1.txt文件名為1.txt.gz

5) 解壓縮1.txt.gz

?6) 使用bzip2壓縮1.txt壓縮后文件名為1.txt.bz2

7) 解壓縮1.txt.bz2

?8) 解包1.tar,解包后文件存放到/tmp目錄下

?9) 使用tar命令打包并且壓縮/1.txt、/2.txt,得到的文件名為1.tar.gz

10) 解包1.tar.gz,解包后文件存放到/tmp目錄下

第二種方式:

?Tar命令:


擴(kuò)展:解包

?常用語法:

?#tar -zxvf *.tar.gz (大多數(shù))

#tar -jxvf *.tar.bz2

選項(xiàng)含義: -z或--gzip或--ungzip:通過gzip指令處理文件;

-x或--extract或--get:從文件中還原文件;

?-v:顯示操作過程【可選】;

?-f或--file:指定一個文件;

?-j:支持bzip2解壓文件;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容