一、權(quán)限介紹
在Linux中分別有讀、寫、執(zhí)行權(quán)限:
讀權(quán)限:
??對(duì)于文件夾來(lái)說(shuō),讀權(quán)限影響用戶是否能夠列出目錄結(jié)構(gòu)
??對(duì)于文件來(lái)說(shuō),讀權(quán)限影響用戶是否可以查看文件內(nèi)容
寫權(quán)限:
??對(duì)文件夾來(lái)說(shuō),寫權(quán)限影響用戶是否可以在文件夾下“創(chuàng)建/刪除/復(fù)制到/移動(dòng)到”文檔
??對(duì)于文件來(lái)說(shuō),寫權(quán)限影響用戶是否可以編輯文件內(nèi)容,復(fù)制,刪除,移動(dòng)
執(zhí)行權(quán)限:
??一般都是對(duì)于文件來(lái)說(shuō),特別腳本文件。
??對(duì)于文件來(lái)說(shuō),執(zhí)行權(quán)限影響文件是否可以運(yùn)行。
??對(duì)于文件夾來(lái)說(shuō),執(zhí)行權(quán)限影響對(duì)應(yīng)的用戶是否可以在文件夾內(nèi)執(zhí)行指令。
二、身份介紹
1、Owner身份(文件所有者,默認(rèn)為文檔的創(chuàng)建者)
??由于Linux是多用戶、多任務(wù)的操作系統(tǒng),因此可能常常有多人同時(shí)在某臺(tái)主機(jī)上工作,但每個(gè)人均可在主機(jī)上設(shè)置文件的權(quán)限,讓其成為個(gè)人的“私密文件”,即個(gè)人所
有者。因?yàn)樵O(shè)置了適當(dāng)?shù)奈募?quán)限,除本人(文件所有者)之外的用戶無(wú)法查看文件內(nèi)容。
??例如某個(gè)MM給你發(fā)了一封Email情書,你將情書轉(zhuǎn)為文件之后存檔在自己的主文件夾中。為了不讓別人看到情書的內(nèi)容,你就能利用所有者的身份去設(shè)置文件的適當(dāng)權(quán)
限,這樣,即使你的情敵想偷看你的情書內(nèi)容也是做不到的。
2、Group身份(與文件所有者同組的用戶)
??與文件所有者同組最有用的功能就體現(xiàn)在多個(gè)團(tuán)隊(duì)在同一臺(tái)主機(jī)上開(kāi)發(fā)資源的時(shí)候。例如主機(jī)上有A、B兩個(gè)團(tuán)體(用戶組),A中有a1,a2,a3三個(gè)成員,B中有b1,b2兩個(gè)
成員,這兩個(gè)團(tuán)體要共同完成一份報(bào)告F。由于設(shè)置了適當(dāng)?shù)臋?quán)限,A、B團(tuán)體中的成員都能互相修改對(duì)方的數(shù)據(jù),但是團(tuán)體C的成員則不能修改F的內(nèi)容,甚至連查看的權(quán)限都沒(méi)
有。同時(shí),團(tuán)體的成員也能設(shè)置自己的私密文件,讓團(tuán)隊(duì)的其它成員也讀取不了文件數(shù)據(jù)。在Linux中,每個(gè)賬戶支持多個(gè)用戶組。如用戶a1、b1即可屬于A用戶組,也能屬于B
用戶組【主組和附加組】。
3、Others身份(其他人,相對(duì)于所有者與同組用戶)
??這個(gè)是個(gè)相對(duì)概念。打個(gè)比方,大明、二明、小明一家三兄弟住在一間房,房產(chǎn)證上的登記者是大明(owner所有者),那么,大明一家就是一個(gè)用戶組,這個(gè)組有大明、
二明、小明三個(gè)成員;另外有個(gè)人叫張三,和他們?nèi)龥](méi)有關(guān)系,那么這個(gè)張三就是其他人(others)了。
??同時(shí),大明、二明、小明有各自的房間,三者雖然能自由進(jìn)出各自的房間,但是小明不能讓大明看到自己的情書、日記等,這就是文件所有者(用戶)的意義。
4、Root用戶(超級(jí)用戶)
??在Linux中,還有一個(gè)神一樣存在的用戶,這就是root用戶,因?yàn)樵谒杏脩糁兴鼡碛凶畲蟮臋?quán)限 ,所以管理著普通用戶。因此以后在設(shè)置文檔的權(quán)限的時(shí)候不必考慮root
用戶。
三、Linux權(quán)限查看
??要設(shè)置權(quán)限,就需要知道文件的一些基本屬性和權(quán)限的分配規(guī)則。在Linux中,ls命令常用來(lái)查看文檔的屬性,用于顯示文件的文件名和相關(guān)屬性。
??ls -l 路徑 【ls -l 等價(jià)于 ll】
??標(biāo)紅的部分就是Linux的文檔權(quán)限屬性信息。
??Linux中存在用戶(owner)、用戶組(group)和其他人(others)概念,各自有不同的權(quán)限,對(duì)于一個(gè)文檔來(lái)說(shuō),其權(quán)限具體分配如下:
十位字符表示含義:
??第1位:表示文檔類型,取值常見(jiàn)的有“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位:表示與所有者同在一個(gè)組的用戶的權(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的三個(gè)參數(shù)組合,且位置順序不會(huì)變化。沒(méi)有對(duì)應(yīng)權(quán)限就用 – 代替。
四、權(quán)限設(shè)置(重點(diǎn))
語(yǔ)法:#chmod [選項(xiàng)] 權(quán)限模式 文檔
注意事項(xiàng):
??常用選項(xiàng):
??-R:遞歸設(shè)置權(quán)限 (當(dāng)文檔類型為文件夾的時(shí)候)
??權(quán)限模式:就是該文檔需要設(shè)置的權(quán)限信息
??文檔:可以是文件,也可以是文件夾,可以是相對(duì)路徑也可以是絕對(duì)路徑。
注意點(diǎn):如果想要給文檔設(shè)置權(quán)限,操作者要么是root用戶,要么就是文檔的所有者。
1、字母形式
給誰(shuí)設(shè)置:
u:表示所有者身份owner(user)
g:表示給所有者同組用戶設(shè)置(group)
o:表示others,給其他用戶設(shè)置權(quán)限
a:表示all,給所有人(包含ugo部分)設(shè)置權(quán)限
如果在設(shè)置權(quán)限的時(shí)候不指定給誰(shuí)設(shè)置,則默認(rèn)給所有用戶設(shè)置
權(quán)限字符:
r:讀
w:寫
x:表示執(zhí)行
-:表示沒(méi)有權(quán)限
權(quán)限分配方式:
+:表示給具體的用戶新增權(quán)限(相對(duì)當(dāng)前)
-:表示刪除用戶的權(quán)限(相對(duì)當(dāng)前)
=:表示將權(quán)限設(shè)置成具體的值(注重結(jié)果)【賦值】
設(shè)置多個(gè)身份的權(quán)限時(shí)候,每個(gè)身份之間需要通過(guò)英文逗號(hào)分開(kāi)。
例如:需要給/root/anaconda-ks.cfg文件(-rw-------.)設(shè)置權(quán)限,要求所有者擁有全部的權(quán)限,同組用戶擁有讀和寫權(quán)限,其他用戶只讀權(quán)限。
答案:
所有者(u):rwx
同組用戶(g):rw
其他用戶(o):r
方式1:
#chmod u=rwx,g=rw,o=r 1.txt
方式2:
#chmod u-x,g=r,o=r 1.txt
提示:當(dāng)文檔擁有執(zhí)行權(quán)限(任意部分),則其顏色在終端中是綠色。
#chmod ug=rwx 形式,如果有兩部分權(quán)限一樣則可以合在一起寫的
等價(jià)于:
#chmod u=rwx,g=rwx
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-710450.html
例如:如果anaconda-ks.cfg文件什么權(quán)限都沒(méi)有,可以使用root用戶設(shè)置所有的人都有執(zhí)行權(quán)限,則可以寫成
什么權(quán)限都沒(méi)有應(yīng)該是:----------
目標(biāo)的效果:---x--x--x
#chmod a=x anaconda-ks.cfg
?
#chmod a+x anaconda-ks.cfg
?
#chmod u+x,g+x,o+x anaconda-ks.cfg
?
#chmod ugo=x anaconda-ks.cfg
?
#chmod ugo+x anaconda-ks.cfg
?
#chmod +x anaconda-ks.cfg
?
案例:設(shè)置文件“~/yunwei/yunwei.txt”權(quán)限,要求所有者全部權(quán)限,同組用戶擁有讀權(quán)限、寫權(quán)限,其他人擁有讀權(quán)限
#chmod u=rwx,g=rw,o=r ~/yunwei/yunwei.txt
?
更改要求:所有者全部權(quán)限,同組用戶擁有讀權(quán)限、寫權(quán)限,其他人擁有讀權(quán)限、寫權(quán)限
練習(xí):
①設(shè)置文件夾/tmp/yunwei的權(quán)限(如果文件夾不存在,自行創(chuàng)建),要求權(quán)限為遞歸權(quán)限,并且所有者有全部權(quán)限,同組用戶有讀執(zhí)行權(quán)限,其他用戶只讀權(quán)限;
②設(shè)置文件/tmp/yunwei/class04.sh權(quán)限,文件如果不存在則自行創(chuàng)建,要求權(quán)限為所有者全部權(quán)限,同組用戶讀和執(zhí)行權(quán)限,其他用戶沒(méi)有權(quán)限;
③使用普通用戶在/tmp/yunwei目錄下創(chuàng)建test目錄,設(shè)置目錄權(quán)限為所有者擁有全部權(quán)限,同組用戶只讀,其他用戶只讀;
2、數(shù)字形式
經(jīng)常會(huì)在一些技術(shù)性的網(wǎng)頁(yè)上看到類似于#chmod 777 a.txt 這樣的一個(gè)權(quán)限,這種形式稱之為數(shù)字形式權(quán)限(777)。
讀:r 4
寫:w 2
執(zhí)行:x 1
沒(méi)有任何權(quán)限(-):0
例如:需要給anaconda-ks.cfg設(shè)置權(quán)限,權(quán)限要求所有者擁有全部權(quán)限,同組用戶擁有讀執(zhí)行權(quán)限,其他用戶只讀。
分析:、
所有者:全部權(quán)限 = 讀 + 寫 + 執(zhí)行 = 4 + 2 + 1 = 7
同組用戶:讀執(zhí)行權(quán)限 = 讀 + 執(zhí)行 = 4 + 1 = 5
其他用戶:只讀權(quán)限 = 讀 = 4
最終得出的結(jié)果是754
#chmod 754 anaconda-ks.cfg
面試題:用超級(jí)管理員設(shè)置文檔的權(quán)限命令是#chmod -R 731 aaa,請(qǐng)問(wèn)這個(gè)命令有沒(méi)有什么不合理的地方?
所有者 = 7 = 4 + 2 + 1 = 讀 + 寫 + 執(zhí)行
同組用戶 = 3 = 2 + 1 = 寫 + 執(zhí)行
其他用戶 = 1 = 執(zhí)行
??問(wèn)題在權(quán)限731中3表示寫+執(zhí)行權(quán)限,但是寫又不必須需要能打開(kāi)之后才可以寫,因此必須需要具備讀權(quán)限,因此權(quán)限不合理。以后建議各位在設(shè)置權(quán)限的時(shí)候不要設(shè)置這
種“奇葩權(quán)限”。單獨(dú)出現(xiàn)2、3的權(quán)限數(shù)字一般都是有問(wèn)題的權(quán)限
注意:在寫權(quán)限的時(shí)候千萬(wàn)不要設(shè)置類似于上面的這種“奇葩權(quán)限”。如果一個(gè)權(quán)限數(shù)字中但凡出現(xiàn)2與3的數(shù)字,則該權(quán)限有不合理的情況。
練習(xí):
??①使用root用戶設(shè)置文件夾/root/20180811的權(quán)限為:所有者全部權(quán)限,同組用戶擁有讀和執(zhí)行權(quán)限,其他用戶沒(méi)有權(quán)限,請(qǐng)使用數(shù)字權(quán)限的形式設(shè)置,寫出指令;750
??②請(qǐng)使用root用戶寫出設(shè)置文件/root/20180811.txt文件的權(quán)限,權(quán)限要求為:所有者擁有全部權(quán)限,同組用戶要求可以讀寫,其他用戶只讀,要求使用數(shù)字形式;764
??③張三瘋(root)收到某個(gè)MM的情書,請(qǐng)使用數(shù)字形式設(shè)置張三瘋的Email情書權(quán)限(文件為/root/email.doc),權(quán)限要求只有所有者可以讀寫,除此之外任何人沒(méi)有權(quán)
限;600
3、注意事項(xiàng)
使用root用戶創(chuàng)建一個(gè)文件夾(/oo),權(quán)限默認(rèn),權(quán)限如下:
需要在oo目錄下創(chuàng)建文件(oo/xx.txt),需要給777權(quán)限:
擴(kuò)展:
在Linux系統(tǒng)中,創(chuàng)建文檔的權(quán)限有一個(gè)默認(rèn)值,以當(dāng)前的系統(tǒng)為例,其創(chuàng)建文件夾之后的默認(rèn)權(quán)限是755,創(chuàng)建文件之后的權(quán)限是644。
之所以會(huì)這樣是受到了系統(tǒng)中umask(掩碼)的值的影響,其是用于指定文檔創(chuàng)建好之后的權(quán)限,umask默認(rèn)為022。
計(jì)算方式:
對(duì)于文件:文件的權(quán)限 = 666 – umask掩碼、
對(duì)于文件夾:文件夾的權(quán)限 = 777 - umask掩碼
切換到zhang用戶(不是文檔所有者,也不是同組用戶,屬于other部分):
問(wèn)題1:zhang用戶是否可以打開(kāi)oo/xx.txt文件?
問(wèn)題2:zhang用戶是否可以編輯oo/xx.txt文件?
問(wèn)題3:zhang用戶是否可以刪除oo/xx.txt文件?
在Linux中,如果要?jiǎng)h除一個(gè)文件,不是看文件有沒(méi)有對(duì)應(yīng)的權(quán)限,而是看文件所在的目錄是否有寫權(quán)限,如果有才可以刪除。
五、屬主與屬組
屬主:所屬的用戶(文件的主人),文檔所有者
屬組:所屬的用戶組(同組用戶的組名稱)
前面的那個(gè)root就是屬主
后面的那個(gè)root就是屬組
這兩項(xiàng)信息在文檔創(chuàng)建的時(shí)候會(huì)使用創(chuàng)建者的信息(用戶名、用戶所屬的主組名稱)。
之所以需要設(shè)置這個(gè):如果有時(shí)候去刪除某個(gè)用戶,則該用戶對(duì)應(yīng)的文檔的屬主和屬組信息就需要去修改(類似離職之前的工作交接)。
1、chown(重點(diǎn))
作用:更改文檔的所屬用戶(change owner)
語(yǔ)法:#chown [-R] 新的username 文檔路徑
案例:將先前設(shè)置的1.txt目錄的所有者設(shè)置成成lijingyi
#chown -R lijingyi /1.txt
?
可以更改所屬的用戶,也可以修改所屬的用戶組
chown [-R] username:groupname 文檔路徑
案例:將剛才1.txt的文檔的所屬組所屬用戶修改為root
#chown -R guozhengyuan:guozhengyuan /1.txt
?
- ?
2、chgrp
作用:更改文檔的所屬用戶組(change group)
語(yǔ)法:#chgrp [-R] groupname 文檔的路徑
案例:將剛才oo目錄的所有用戶組名改為guozhengyuan
#chgrp -R guozhengyuan /1.txt
?
六、sudo
問(wèn)題:reboot、shutdown、init、halt,在普通用戶身份上都是操作不了,但是有些特殊的情況下又需要有執(zhí)行權(quán)限。又不可能讓root用戶把自己的密碼告訴普通用戶,這個(gè)問(wèn)題該怎么解決?
該問(wèn)題是可以被解決的,可以使用sudo(switch user do)命令來(lái)進(jìn)行權(quán)限設(shè)置。Sudo可以讓管理員(root)事先定義某些特殊命令誰(shuí)可以執(zhí)行(事先放權(quán)規(guī)則)。
默認(rèn)sudo中是沒(méi)有除root之外用戶的規(guī)則,要想使用則先配置sudo。
Sudo配置文件:/etc/sudoers
該文件默認(rèn)只讀,不允許修改,因此不能直接修改。
a. 配置sudo文件請(qǐng)使用“#visudo”,打開(kāi)之后其使用方法和vim一致
b. 配置普通用戶的權(quán)限
Root表示用戶名,如果是用戶組,則可以寫成“%組名”
ALL:表示允許登錄的主機(jī)(地址白名單)
(ALL):表示以誰(shuí)的身份執(zhí)行,ALL表示root身份、
ALL:表示當(dāng)前用戶可以執(zhí)行的命令,多個(gè)命令可以使用“,”分割
一般需要調(diào)整的就是用戶/用戶組名稱與可以執(zhí)行的指令名。
案例:使用zhang這個(gè)用戶,賦予其添加用戶權(quán)限。
注意:在寫sudo規(guī)則的時(shí)候不建議寫直接形式的命令,而是寫命令的完整路徑。
路徑可以使用which(whereis亦可)命令來(lái)查看
語(yǔ)法:#which 指令名稱
whereis會(huì)找出一些非可執(zhí)行文件,建議使用which
在普通用戶下怎么查看自己具有哪些特殊權(quán)限呢?
例如:sudo -l文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-710450.html
- ?
- ?
- ?
- ?
- ?
- ?
- ?
- ?
- ?
- ?
- ?
- ?
?
到了這里,關(guān)于7-Linux操作系統(tǒng) 權(quán)限管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!