? Linux的權限管理操作
一、權限概述
總述:Linux系統(tǒng)一般將文件可存/取訪問的身份分為3個類別:owner(擁有者)茧吊、group(和所有者同組的用戶)、others(其他人),且3種身份各有read(讀)、write(寫)倡勇、execute(執(zhí)行)等權限。
?1嘉涌、權限介紹
什么是權限妻熊?
在多用戶(可以不同時)計算機系統(tǒng)的管理中,權限是指某個特定的用戶具有特定的系統(tǒng)資源使用權力仑最,像是文件夾扔役、特定系統(tǒng)指令的使用或存儲量的限制。
?在Linux中分別有讀警医、寫厅目、執(zhí)行權限:
???????讀權限: 對于文件夾來說,讀權限影響用戶是否能夠列出目錄結構
?????????????????????? 對于文件來說,讀權限影響用戶是否可以查看文件內容??
???????寫權限: 對文件夾來說损敷,寫權限影響用戶是否可以在文件夾下“創(chuàng)建/刪除/復制到/移動到”文檔??????????????????
?????????????????????? 對于文件來說,寫權限影響用戶是否可以編輯文件內容
???????執(zhí)行權限: 一般都是對于文件來說深啤,特別腳本文件拗馒。
???????????????????? 對于文件來說,執(zhí)行權限影響文件是否可以運行溯街。?
?????????????????? 對于文件夾來說诱桂,執(zhí)行權限影響對應的用戶是否可以在文件夾內執(zhí)行指令。
?2呈昔、身份介紹
?Owner身份(文件所有者挥等,默認為文檔的創(chuàng)建者) 由于Linux是多用戶、多任務的操作系統(tǒng)堤尾,因此可能常常有多人同時在某臺主機上工作肝劲,但每個人均可在主機上設置文件的權限,讓其成為個人的“私密文件”郭宝,即個人所有者辞槐。因為設置了適當的文件權限,除本人(文件所有者)之外的用戶無法查看文件內容粘室。
?例如某個MM給你發(fā)了一封Email情書榄檬,你將情書轉為文件之后存檔在自己的主文件夾中。為了不讓別人看到情書的內容衔统,你就能利用所有者的身份去設置文件的適當權限鹿榜,這樣,即使你的情敵想偷看你的情書內容也是做不到的锦爵。
?Group身份(與文件所有者同組的用戶) 與文件所有者同組最有用的功能就體現在多個團隊在同一臺主機上開發(fā)資源的時候舱殿。
例如主機上有A、B兩個團體(用戶組)棉浸,A中有a1,a2,a3三個成員怀薛,B中有b1,b2兩個成員,這兩個團體要共同完成一份報告F迷郑。由于設置了適當的權限枝恋,A、B團體中的成員都能互相修改對方的數據嗡害,但是團體C的成員則不能修改F的內容焚碌,甚至連查看的權限都沒有。同時霸妹,團體的成員也能設置自己的私密文件十电,讓團隊的其它成員也讀取不了文件數據。在Linux中,每個賬戶支持多個用戶組鹃骂。如用戶a1台盯、b1即可屬于A用戶組,也能屬于B用戶組【主組和附加組】畏线。
?Others身份(其他人静盅,相對于所有者與同組用戶) 這個是個相對概念。
打個比方寝殴,大明蒿叠、二明、小明一家三兄弟住在一間房蚣常,房產證上的登記者是大明(owner所有者)市咽,那么,大明一家就是一個用戶組抵蚊,這個組有大明施绎、二明、小明三個成員泌射;另外有個人叫張三粘姜,和他們三沒有關系,那么這個張三就是其他人(others)了熔酷。 同時孤紧,大明、二明拒秘、小明有各自的房間号显,三者雖然能自由進出各自的房間,但是小明不能讓大明看到自己的情書躺酒、日記等押蚤,這就是文件所有者(用戶)的意義。
?Root用戶(超級用戶) 在Linux中羹应,還有一個神一樣存在的用戶揽碘,這就是root用戶,因為在所有用戶中它擁有最大的權限 园匹,所以管理著普通用戶雳刺。
?3、Linux的權限介紹 要設置權限裸违,就需要知道文件的一些基本屬性和權限的分配規(guī)則掖桦。在Linux中,ls命令常用來查看文件的屬性供汛,用于顯示文件的文件名和相關屬性枪汪。
?#ls -l 路徑 【ls -l 等價于 ll】
標紅的部分就是Linux的文檔權限屬性信息涌穆。
?Linux中存在用戶(owner)、用戶組(group)和其他人(others)概念雀久,各自有不同的權限宿稀,對于一個文檔來說,其權限具體分配如下:
十位字符表示含義:
?第1位:表示文檔類型岸啡,取值常見的有“d表示文件夾”原叮、“-表示文件”、“l(fā)表示軟連接”巡蘸、“s表示套接字”、“c表示字符設備”擂送、“b表示塊狀設備”等等悦荒;
第2-4位:表示文檔所有者的權限情況,
第2位表示讀權限的情況嘹吨,取值有r搬味、-;
第3位表示寫權限的情況蟀拷,w表示可寫碰纬,-表示不可寫,
第4位表示執(zhí)行權限的情況问芬,取值有x悦析、-。
?第5-7位:表示與所有者同在一個組的用戶的權限情況此衅,
第5位表示讀權限的情況强戴,取值有r、-挡鞍;
第6位表示寫權限的情況骑歹,w表示可寫,-表示不可寫墨微,
第7位表示執(zhí)行權限的情況道媚,取值有x、-翘县。
第8-10位:表示除了上面的前2部分的用戶之外的其他用戶的權限情況最域,
第8位表示讀權限的情況,取值有r炼蹦、-羡宙;
第9位表示寫權限的情況,w表示可寫掐隐,-表示不可寫狗热,
第10位表示執(zhí)行權限的情況钞馁,取值有x、-匿刮。
注意:除了權限位上的rwx以及-之外毡代,還有一些特殊的權限代碼“s”、“t”黍判,這些不在本次考慮范圍內装获。
權限分配中,均是rwx的三個參數組合,且位置順序不會變化光羞。沒有對應權限就用 – 代替绩鸣。
例如:以下一個文檔權限是怎么樣的?
文檔類型是:文件夾?????????????????????? 所有者:讀寫執(zhí)行權限?????????????????? 同組用戶:讀執(zhí)行權限 其他人:讀執(zhí)行權限???????? 管理員:全部
二纱兑、權限設置(重點)
?語法:#chmod 選項 權限模式 文檔
注意事項:
常用選項:
?-R:遞歸設置權限 (當文檔類型為文件夾的時候)
?權限模式:就是該文檔需要設置的權限信息
文檔:可以是文件呀闻,也可以是文件夾,可以是相對路徑也可以是絕對路徑潜慎。
?注意點:如果想要給文檔設置權限捡多,操作者要么是root用戶,要么就是文檔的所有者铐炫。
?1垒手、字母形式 給誰設置:
u:表示所有者身份owner(user)
?g:表示給所有者同組用戶設置(group)
?o:表示others,給其他用戶設置權限
?a:表示all倒信,給所有人(包含ugo部分)設置權限
?如果在設置權限的時候不指定給誰設置科贬,則默認給所有用戶設置
權限字符:
?r:讀??????????? w:寫?????????? x:表示執(zhí)行 -:表示沒有權限
權限分配方式:
?+:表示給具體的用戶新增權限(相對當前)
?-:表示刪除用戶的權限(相對當前)
?=:表示將權限設置成具體的值(注重結果)【賦值】
例如:需要給/root/anaconda-ks.cfg文件(-rw-------.)設置權限,要求所有者擁有全部的權限堤结,同組用戶擁有讀和寫權限唆迁,其他用戶只讀權限。
?答案: 所有者:全部權限(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
提示:當文檔擁有執(zhí)行權限(任意部分)竞穷,則其顏色在終端中是綠色唐责。
?#chmod ug=rwx 形式,如果有兩部分權限一樣則可以合在一起寫的 等價于:
?#chmod u=rwx,g=rwx
例如:如果anaconda-ks.cfg文件什么權限都沒有瘾带,可以使用root用戶設置所有人都有執(zhí)行權限鼠哥,則可以寫成
?#chmod a+x anaconda-ks.cfg 等價于 #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
案例:設置文件“~/yunwei/yunwei.txt”權限,要求所有者全部權限看政,同組用戶擁有讀權限朴恳、寫權限,其他人擁有讀權限
更改要求:所有者全部權限允蚣,同組用戶擁有讀權限于颖、寫權限,其他人擁有讀權限嚷兔、寫權限
?2森渐、數字形式?
經常會在一些技術性的網頁上看到類似于#chmod 777 a.txt 這樣的一個權限做入,這種形式稱之為數字形式權限(777)。
?讀:? r???? 4?? ?
寫:?? w??? ?2
執(zhí)行:x???? ?1
沒有任何權限:0
例如:需要給anaconda-ks.cfg設置權限同衣,權限要求所有者擁有全部權限竟块,同組用戶擁有讀執(zhí)行權限,其他用戶只讀耐齐。
所有者權限 = 全部權限 = 讀 + 寫 +執(zhí)行 = 4 + 2 + 1 = 7
同組用戶權限 = 讀權限 + 執(zhí)行權限 = 4 + 1 = 5 其
他用戶權限 = 讀權限 = 4
最終得出的結果是754
#chmod 754 anaconda-ks.cfg
面試題:用超級管理員設置文檔的權限命令是#chmod -R 731 aaa浪秘,請問這個命令有沒有什么不合理的地方?
?所有者 = 7 = 4 + 2 + 1 = 讀 + 寫 + 執(zhí)行
?同組用戶 = 3 = 2 + 1 = 寫 + 執(zhí)行
其他用戶 = 1 = 執(zhí)行
問題在權限731中3表示寫+執(zhí)行權限埠况,但是寫又不必須需要能打開之后才可以寫耸携,因此必須需要具備讀權限,因此權限不合理辕翰。以后建議各位在設置權限的時候不要設置這種“奇葩權限”违帆。單獨出現2、3的權限數字一般都是有問題的權限
注意:在寫權限的時候千萬不要設置類似于上面的這種“奇葩權限”金蜀。如果一個權限數字中但凡出現2與3的數字,則該權限有不合理的情況的畴。
3渊抄、注意事項 使用root用戶創(chuàng)建一個文件夾(/oo),權限默認丧裁,權限如下:
?需要在oo目錄下創(chuàng)建文件(oo/xx.txt)护桦,需要給777權限:
切換到y(tǒng)w03用戶(不是文檔所有者,也不是同組用戶煎娇,屬于other部分):
?問題1:yw03用戶是否可以打開oo/xx.txt文件二庵?【能打開】
?問題2:yw03用戶是否可以編輯oo/xx.txt文件?【可以】
問題3:yw03用戶是否可以刪除oo/xx.txt文件缓呛?【不能】
?在Linux中催享,如果要刪除一個文件,不是看文件有沒有對應的權限哟绊,而是看文件所在的目錄是否有寫權限因妙,如果有才可以刪除。
三票髓、屬主(zhu)與屬組(zu)設置
屬主:所屬的用戶(文件的主人)攀涵,文檔所有者
屬組:所屬的用戶組
前面的那個root就是屬主?????????????? ?后面的那個root就是屬組
?這兩項信息在文檔創(chuàng)建的時候會使用創(chuàng)建者的信息(用戶名、用戶所屬的主組名稱)洽沟。
之所以需要設置這個:如果有時候去刪除某個用戶以故,則該用戶對應的文檔的屬主和屬組信息就需要去修改(類似離職之前的工作交接)。
1裆操、chown(重點)
作用:更改文檔的所屬用戶(change owner)
語法:#chown -R 新的username 文檔路徑
案例:將先前設置的/oo目錄的所有者設置成成yw03
#chown -R yw03 /oo
#ll
?2怒详、chgrp(了解)
?作用:更改文檔的所屬用戶組(change group)
?語法:#chgrp -R groupname 文檔的路徑
案例:將剛才oo目錄的所有用戶組名改為yw03
?#chgrp -R yw03 /oo
思考炉媒,如何通過一個命令實現既可以更改所屬的用戶,也可以修改所屬的用戶組呢棘利? 答:可以實現的橱野,通過chown命令???????? 語法:#chown -R username:groupname 文檔路徑
案例:將剛才oo的文檔的所屬組所屬用戶修改為root
?#chown -R root:root /oo
問題:zhangsan用戶使用自己的帳號創(chuàng)建文件index.html,并且當時默認的權限是644善玫,后續(xù)管理員root將該文件的屬主改成了lisi水援,屬組改成lisi,則zhangsan對文件的操作權限有變化嗎茅郎?如果有權限是多少蜗元?(zhangsan和lisi不同組)
答:雖然沒有直接改權限,但是由于更改了屬組和屬主系冗,則會間接的對zhangsan的權限產生影響奕扣。最新的權限是4(讀)。
?四掌敬、擴展(1)
問題:reboot惯豆、shutdown、init奔害、halt楷兽、user管理,在普通用戶身份上都是操作不了华临,但是有些特殊的情況下又需要有執(zhí)行權限芯杀。又不可能讓root用戶把自己的密碼告訴普通用戶,這個問題該怎么解決雅潭?
該問題是可以被解決的揭厚,可以使用sudo(switch user do)命令來進行權限設置。Sudo可以讓管理員(root)事先定義某些特殊命令誰可以執(zhí)行扶供。
默認sudo中是沒有除root之外用戶的規(guī)則筛圆,要想使用則先配置sudo。
Sudo配置文件:/etc/sudoers
該文件默認只讀诚欠,不允許修改顽染,因此不能直接修改。
?a. 配置sudo文件請使用“#visudo”轰绵,打開之后其使用方法和vim一致
b. 配置普通用戶的權限
?Root表示用戶名粉寞,如果是用戶組,則可以寫成“%組名”
ALL:表示允許登錄的主機(地址白名單)
(ALL):表示以誰的身份執(zhí)行左腔,ALL表示root身份
ALL:表示當前用戶可以執(zhí)行的命令唧垦,多個命令可以使用“,”分割
?案例:創(chuàng)建test用戶,本身test用戶不能添加用戶液样,要求使用sudo配置振亮,將其設置為可以添加用戶巧还。
添加test用戶:
?注意:在寫sudo規(guī)則的時候不建議寫直接形式的命令,而是寫命令的完整路徑坊秸。 路徑可以使用which命令來查看
?語法:#which 指令名稱
在添加好對應的規(guī)則之后就可以切換用戶麸祷,切換到普通用戶test,再去執(zhí)行:
?此時要想使用剛才的規(guī)則褒搔,則以以下命令進行:
?#sudo 需要執(zhí)行的指令
?在輸入sudo指令之后需要輸入當前的用戶密碼進行確認的操作(不是root用戶密碼)阶牍,輸入之后在接下來5分鐘內再次執(zhí)行sudo指令不需要密碼。
如果要刪除用戶則會提示: 因此要想實現刪除則必須先配置sudo規(guī)則
補充:在普通用戶下怎么查看自己具有哪些特殊權限呢星瘾?
?#sudo -l?????????????????? 表示list
最后:sudo不是任何Linux分支都有的命令走孽,常見centos與ubuntu都存在sudo命令。
?軟連接:就是相當于windows下面的快捷方式
Ln -s
-s:指定源文件是誰 后面接 連接目標文件
接下來查看源文件里面會不會發(fā)生變化琳状?
?第二步:修改原文件
查看目標文件有沒有發(fā)生變化:
?刪除目標文件:相當于刪除快捷方式磕瓷,對源文件沒有絲毫影響
現在刪除源文件看效果:
總結:
軟連接
?Ln - s 原路徑 目標路徑
?特點:
1、就是相當于win中的快捷方式
?2念逞、刪除鏈接文件困食,源文件無影響
?3、刪除源文件翎承,鏈接文件失效
?4陷舅、修改源文件\鏈接文件,內容都發(fā)生改變
硬鏈接:
?修改目標文件审洞,并查看是否發(fā)生變化
刪源文文件:
硬鏈接
ln??? 源路徑??? 目標路徑?
特點:
1、刪除鏈接文件待讳,源文件無影響
?2芒澜、刪除源文件文件,鏈接件無影響
3创淡、修改源文件\鏈接文件痴晦,內容都 發(fā)生改變。
>>:表示追加
2.歸檔文件和歸檔技術
1) 掌握歸檔的定義:歸檔(archiving)就是將許多文件(或目錄)打包成一個文件琳彩。
?2) 了解歸檔的目的:歸檔的目的就是方便備份誊酌、還原及文件的傳輸操作。
?3) 掌握tar命令的功能:將多個文件(也可能包括目錄露乏,因為目錄本身也是文件)放在一起存放到一個磁帶或磁盤歸檔文件中碧浊。并且將來可以根據需要只還原歸檔文件中的某些指定的文件。 4) 掌握tar命令的常用選項:
?c:創(chuàng)建一個新的tar文件瘟仿。 t
:列出tar文件中目錄的內容箱锐。
?x:從tar文件中抽取文件。
?f:指定歸檔文件或磁帶(也可能是軟盤)設備(一般都要選)劳较。
?v:顯示所打包的文件的詳細信息驹止,v是verbose的第1個字母浩聋。
z:使用gzip壓縮算法來壓縮打包后的文件。
?j:使用bzip2壓縮算法來壓縮打包后的文件
解壓:
-C表示指定目錄
?壓縮:
?4臊恋、文件的壓縮和解壓縮
1) 掌握壓縮的定義:壓縮就是將一個大的文件通過一些壓縮算法變成一個小文件衣洁。
2) 了解壓縮的目的:主要是縮小文件的大小,這樣會節(jié)省存儲文件的磁盤或磁帶的空間抖仅,另外在網絡上傳輸這些小文件也會減少網絡的瀏覽(也就是節(jié)省網絡的帶寬)坊夫。
3) 掌握解壓縮的定義:解壓縮就是將一個通過一些壓縮算法的文件恢復到壓縮之前的樣子。
?4) 掌握gzip命令和gunzip命令的用法舉例:
a) 例如:將文件file1壓縮成.gz格式的壓縮包應該使用的命令為:gzip file1 –c > /路徑/name.gz b) 例如:將壓縮文件file1.gz解壓縮的命令為: gunzip file1.gz >
?5) 掌握bzip2命令和bunzip2命令的用法舉例:
?a) 例如:將文件file1壓縮成.bz2格式的壓縮包應該使用的命令為:bzip2 file1 >
b) 例如:將壓縮文件file1.bz2解壓縮的命令為:
bunzip2 file1.bz2 >
5. 在使用tar命令的同時進行壓縮和解壓縮(詳見linux系統(tǒng)管理P214)
?1) 掌握在使用tar命令的同時進行壓縮和解壓縮的用法舉例
a) 例如:使用tar命令將arch目錄打包而且同時使用gzip的技術壓縮打包后文件的方法(打包后的文件名為arch.tar.gz): tar cvfz arch.tar.gz arch
b) 例如:使用tar命令將arch目錄打包而且同時使用bzip2的技術壓縮打包后文件的方法(打包后的文件名為arch.tar.bz2):tar cvfj arch.tar.bz2 arch
?6. 課后作業(yè)(用時65分鐘)
1) 將用戶信息數據庫文件和組信息數據庫文件縱向合并為一個文件/1.txt(覆蓋)
?2) 將用戶信息數據庫文件和用戶密碼數據庫文件縱向合并為一個文件/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命令:
擴展:解包
?常用語法:
?#tar -zxvf *.tar.gz (大多數)
#tar -jxvf *.tar.bz2
選項含義: -z或--gzip或--ungzip:通過gzip指令處理文件;
-x或--extract或--get:從文件中還原文件屎慢;
?-v:顯示操作過程【可選】瞭稼;
?-f或--file:指定一個文件;
?-j:支持bzip2解壓文件腻惠;
作者:白色襯衫_f48d
鏈接:http://www.reibang.com/p/2a1f1c357d50
來源:簡書
簡書著作權歸作者所有环肘,任何形式的轉載都請聯系作者獲得授權并注明出處。