您好,登錄后才能下訂單哦!
這篇文章主要講解了“Linux權(quán)限管理的方法有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Linux權(quán)限管理的方法有哪些”吧!
權(quán)限入門(mén)
1. 文件屬性
如果你剛聽(tīng)到 文件屬性 這幾個(gè)字眼感到比較陌生,不要慌張,因?yàn)橹灰阌眠^(guò) Linux ,你可不會(huì)對(duì) ls 或者 ll 這兩個(gè)命令感到陌生,這兩個(gè)都是用來(lái)查看文件的命令,你在任意一個(gè)目錄下執(zhí)行 ls -l 會(huì)出現(xiàn)類(lèi)似以下頁(yè)面:
我們先來(lái)詳細(xì)看下每個(gè)部分分別代表什么意思:
首先我們先明白 ls 是 list 的意思,用于顯示文件的文件名與相關(guān)屬性,其中 -l是用來(lái)列出所有文件的詳情權(quán)限與屬性。
1)權(quán)限
我們來(lái)看下 drwx------ 這個(gè)部分的內(nèi)容,這個(gè)部分我們細(xì)數(shù)之后發(fā)現(xiàn)其中包含 10 個(gè)字符:
第一欄: 表示該文件是目錄、文件或是鏈接文件等
d : 表示目錄,上面 www 則為一個(gè)名為 www 的目錄
- : 表示文件,上面 test.txt 則為一個(gè)文件
l : 表示鏈接文件【link file】
b : 表示為設(shè)備文件里面可供存儲(chǔ)的周邊設(shè)備
c : 表示為設(shè)備文件里面的串行端口設(shè)備,例如鍵盤(pán)、鼠標(biāo)(一次性讀取設(shè)備)
第二欄: 三個(gè)字符為一組,表示 文件擁有者可具備的權(quán)限
第三欄: 三個(gè)字符為一組,加入此用戶(hù)組的賬號(hào)擁有的權(quán)限
第四欄: 三個(gè)字符為一組,表示非本人且沒(méi)有加入本用戶(hù)組的其他賬號(hào)的權(quán)限
注: 自 第二欄到第四欄 均為三個(gè)字符為一組,其中字符可能出現(xiàn)的有 r、w、x、-,其中【r】 表示可讀(read),【w】表示可寫(xiě)(write),【x】表示可執(zhí)行(execute),【-】表示沒(méi)有權(quán)限。且 rwx 三個(gè)的位置是固定的。
小試牛刀:
-rwx-w-r-- 表示的意思?
首先拆為 4 個(gè)部分,- rwx -w- r--
-: 表示這個(gè)表示一個(gè)文件
rwx: 這個(gè)文件的擁有者有著 可讀、可寫(xiě)、可執(zhí)行 的權(quán)限
-w-: 表示通用戶(hù)組下的其他賬號(hào)對(duì)該文件擁有 可寫(xiě) 的權(quán)限
r--: 表示其他用戶(hù)只能對(duì)該文件擁有 可讀 的權(quán)限
2)鏈接數(shù)
3 表示有多少文件名鏈接到此節(jié)點(diǎn)(inode),每個(gè)文件都會(huì)將它權(quán)限與屬性記錄到文件系統(tǒng)的 inode 中,不過(guò)我們使用的目錄樹(shù)卻是使用文件名來(lái)記錄,因此每個(gè)文件名就會(huì)鏈接到一個(gè) inode ,這個(gè)屬性記錄的就是有多少不同的文件名鏈接到相同的一個(gè) inode 號(hào)碼。
3)擁有者
表示這個(gè)文件(或目錄)的擁有者賬號(hào)。
4)用戶(hù)組
表示這個(gè)文件的所屬用戶(hù)組,我們?cè)?LINUX 中,一個(gè)賬號(hào)會(huì)加入一個(gè)或多個(gè)用戶(hù)組中。如果不屬于同一個(gè)用戶(hù)組的賬號(hào)就不具備對(duì)該文件(或目錄)的相應(yīng)權(quán)限。
5)文件容量
表示該文件的容量大小,默認(rèn)單位是 Bytes
6)修改日期
表示這個(gè)文件的創(chuàng)建日期或者最近的修改日期,如果該文件被修改的時(shí)間距離太久,那么時(shí)間會(huì)僅顯示年份,而不會(huì)具體到月、日以及時(shí)間。不過(guò)我們可以使用 --full-time 來(lái)顯示完整的時(shí)間:
7)文件名
表示文件名,如果文件名之前有 [ . ] ,則表示該文件為隱藏文件,平時(shí)使用ls 或者 ll不會(huì)顯示出隱藏文件,我們可以使用 ls -a 來(lái)顯示所有文件:
2. 何為權(quán)限
在我們還沒(méi)接觸 Linux 之前,接觸最多的便是 windows 系統(tǒng)了,在 windows 系統(tǒng)中我們好像沒(méi)有感受到權(quán)限的存在,只有在系統(tǒng)盤(pán)的部分文件需要管理員權(quán)限,但是這些權(quán)限也不是我們直接管理的。
但是在 Linux 中每個(gè)文件都添加了很多屬性,而且還加入了用戶(hù)組的概念,這些功能并非毫無(wú)用途,說(shuō)到底便是保護(hù) 數(shù)據(jù)安全性。
權(quán)限有何用處
保護(hù)系統(tǒng)功能
在 Linux 系統(tǒng)中,root 用戶(hù)可以對(duì)系統(tǒng)服務(wù)進(jìn)行 讀寫(xiě)和執(zhí)行 操作。如果沒(méi)有權(quán)限的限制,每個(gè)用戶(hù)都可以操作系統(tǒng)文件,那是一件非常危險(xiǎn)的事情,重則造成服務(wù)器癱瘓。
數(shù)據(jù)隔離和共享
Linux 系統(tǒng)中存在 用戶(hù)組 的概念,一個(gè)賬號(hào)可以加入一個(gè)或多個(gè)用戶(hù)組。用戶(hù)組其實(shí)也相當(dāng)于一個(gè) 團(tuán)隊(duì) 的概念。同一個(gè)團(tuán)隊(duì)的隊(duì)員可以進(jìn)行數(shù)據(jù)的共享,而不能看到其他團(tuán)隊(duì)的數(shù)據(jù)信息。如果我們要保證其他團(tuán)隊(duì)的隊(duì)員不能看到本團(tuán)隊(duì)的數(shù)據(jù),那么就應(yīng)該建立一個(gè)用戶(hù)組,然后給對(duì)應(yīng)的文件賦予 rwxrwx---,這樣子就是除了文件擁有者和文件用戶(hù)組可以對(duì)該文件進(jìn)行 讀寫(xiě)執(zhí)行 操作,其他用戶(hù)都不能使用。
3. 實(shí)際修改
我們先了解下權(quán)限有關(guān)的三個(gè)指令:
chgrp:修改文件所屬用戶(hù)組
chown:修改文件擁有者
chmod:修改文件的權(quán)限
1)chgrp
這個(gè)指令是用來(lái)修改文件所屬用戶(hù)組的,對(duì)單詞比較敏感的小伙伴可能會(huì)猜到這個(gè)指令是change group 的縮寫(xiě),當(dāng)你了解到是 change group 的縮寫(xiě)后是不是就會(huì)感覺(jué)記得比較清楚啦。
既然這個(gè)指令是用來(lái)修改文件所屬的用戶(hù)組的,那么前提就是這個(gè)用戶(hù)組是存在的,也就是 /etc/group 這個(gè)文件里存在,否則會(huì)報(bào)錯(cuò)的。
小菜擴(kuò)展:
創(chuàng)建用戶(hù)組:groupadd 用戶(hù)組名稱(chēng),示例如下:
刪除用戶(hù)組:groupdel 用戶(hù)組名稱(chēng),示例如下:
創(chuàng)建用戶(hù):useradd -m -g 組 新建用戶(hù)名,示例如下:
我們現(xiàn)在 /home 的目錄下建一個(gè) chgrp 的文件夾,里面有個(gè) text.txt文件,如下:
我們從圖中可以看到這個(gè)文件的所屬用戶(hù)組是root,這個(gè)時(shí)候我們想把這個(gè)文件的用戶(hù)組改為test ,需要如下操作:
通過(guò)chgrp test text.txt已經(jīng)成功將該文件的用戶(hù)組改為 test 了。
2)chown
這個(gè)指令是用來(lái)修改一個(gè)文件的擁有者的。沒(méi)錯(cuò),這個(gè)指令便是change owner 單詞的縮寫(xiě)。
使用這個(gè)指令的前提便是,用戶(hù)必須是已經(jīng)存在該系統(tǒng)中,也就是在 /etc/passwd 這個(gè)文件中有記錄的文件名稱(chēng)才能修改。上面我們已經(jīng)在擴(kuò)展中介紹了如何創(chuàng)建用戶(hù),小伙伴們記得動(dòng)手試一試。
chown 的用途比較多,它可以直接修改所屬的用戶(hù)組,而且如果要連目錄下的所有子目錄或者文件同時(shí)更改文件擁有者的話(huà),直接加上 -R 的選項(xiàng)即可。
基本命令:
chown [-R] 賬號(hào)名稱(chēng) 文件/目錄 chown [-R] 賬號(hào)名稱(chēng):用戶(hù)組名稱(chēng) 文件/目錄 注: -R 是進(jìn)行遞歸修改,連同子目錄一下的所有文件都修改
示例:
在 /home/chown 的目錄下有個(gè) test 目錄,test 目錄下有個(gè) test.txt 文件,這兩個(gè)的擁有和用戶(hù)組均是 root。這是我們使用 chown 來(lái)修改 test 這個(gè)目錄的擁有者:
chown cbuc test
可以看到 test 這個(gè)目錄的擁有者已經(jīng)被修改成了 cbuc 這個(gè)用戶(hù),但是 test 目錄下的test.txt 并沒(méi)有被修改,這個(gè)時(shí)候我們加上 [-R] 這個(gè)參數(shù)試一下:
chown -R cbuc test
可以看到兩個(gè)的擁有者都已經(jīng)修改成了 cbuc 這個(gè)用戶(hù),我們?cè)僭囅峦瑫r(shí)修改用戶(hù)組:
chown cbuc:test test
這樣子我們就可以很方便的使用 chown 這個(gè)指令來(lái)修改文件的用戶(hù)組和擁有者了。
3)chmod
這個(gè)指令是用來(lái)修改文件的權(quán)限,權(quán)限的設(shè)置可以分為兩種,分別是使用 數(shù)字修改 和 符號(hào)修改
數(shù)字類(lèi)型修改文件權(quán)限
在上面我們可以看到權(quán)限包括 **讀(read)、寫(xiě)(write)、執(zhí)行(execute)**這三種,同時(shí)存在三種身份,分別是 擁有者(owner)、所屬群組(group)、其他人(others)
權(quán)限字符分別為 :r w x 。其種每個(gè)字符分別對(duì)應(yīng)的數(shù)字如下:
r: 4
w: 3
x: 1
這樣子如果一個(gè)文件權(quán)限為 :-rwxrwxrwx
它的計(jì)算規(guī)則便是:
owner: 4+3+1 = 7
group: 4+3+1 = 7
others: 4+3+1 = 7
這樣子與 chmod 相結(jié)合的方式便是 chmod 數(shù)字 文件/目錄,同時(shí) chmod 也支持遞歸的操作,同樣加上參數(shù) [-R]:chmod -R 數(shù)字 文件/目錄
示例:
我們可以看到 test 這個(gè)文件夾中用戶(hù)組擁有的權(quán)限是r-w ,也就是可讀、可執(zhí)行,這個(gè)時(shí)候如果我們賦給用戶(hù)組 可讀、可寫(xiě)、可執(zhí)行 的權(quán)限,我們可以這樣做:
chmod 775 test
這個(gè)時(shí)候,test 文件夾的用戶(hù)組權(quán)限就變成了可讀、可寫(xiě)、可執(zhí)行
如果我們想要讓 test 文件夾下的 test.txt文件也變成跟 test文件夾一樣的權(quán)限,我們可以加上 [-R] 參數(shù),也就是 chmod -R 775 test,這樣子 test文件夾下的子目錄和子文件都會(huì)相對(duì)應(yīng)修改。
符號(hào)類(lèi)型修改文件權(quán)限
上面我們介紹了通過(guò)數(shù)字類(lèi)型修改文件權(quán)限,我們還可以通過(guò)符號(hào)修改。我們也已經(jīng)知道了Linux 中存在三種身份,分別為 user、group、others,那么我們就可以借由 u、g、o三個(gè)字符來(lái)表示是三種身份的權(quán)限,此外還有個(gè) a,即代表全部的身份,使用方法如下:
使用方式:
chmod u=rwx,go=wx text
這個(gè)指令的意思就是給擁有者賦予rwx權(quán)限,用戶(hù)組和其他用戶(hù)賦予wx權(quán)限
chmod a+w test
這個(gè)指令的意思就是給所有身份加上 可讀 的權(quán)限
chmod a-w test
這個(gè)指令的意思就是給所有的身份移除 可讀 的權(quán)限
小菜擴(kuò)展1. 文件種類(lèi)
我們?cè)谏厦嬉呀?jīng)看到了這張圖,也已經(jīng)了解到 d 這欄代表的是文件的種類(lèi),而且我們平時(shí)比較常見(jiàn)的是 - 和 d 這兩種類(lèi)型,那么除了這兩種類(lèi)型之外還有哪些種類(lèi)的文件呢?
1. 常規(guī)文件(regular file)
這個(gè)指的是我們?cè)谶M(jìn)行讀寫(xiě)的類(lèi)型的文件,表示字符便是 -,常規(guī)文件中我們也可以分為以下幾種:
純文本文件(ASCII):這是 LINUX 中最多的一種文件類(lèi)型,這種文件類(lèi)型是我們可以直接讀到的數(shù)據(jù),例如數(shù)字、字母等。
二進(jìn)制文件(binary):一般來(lái)說(shuō)可執(zhí)行的文件(除了腳本文件)就是這種文件類(lèi)型的,比如執(zhí)行指令 ls 、 cd這些就是一個(gè)二進(jìn)制文件。
數(shù)據(jù)文件(data):有些程序在運(yùn)行的過(guò)程中會(huì)讀取某些特定格式的文件,那些特定格式的文件就是數(shù)據(jù)文件。
2. 目錄(directory)
這是指的就是目錄,表示字符為 d
3. 鏈接文件(link)
類(lèi)型 windows 系統(tǒng)中桌面上的快捷方式,表示字符為 l
4. 設(shè)備與設(shè)備文件(device)
與系統(tǒng)周邊及存儲(chǔ)等相關(guān)的一些文件,通常都集中在/dev 這個(gè)目錄之下,通常又分為兩種:
區(qū)塊(block)設(shè)備文件 :就是一些存儲(chǔ)數(shù)據(jù),以提供系統(tǒng)隨機(jī)存取的接口設(shè)備。表示字符為 b
字符(character)設(shè)備文件 :是一些串行端口的接口設(shè)備,例如鍵盤(pán)、鼠標(biāo)等。表示字符為 c
5. 數(shù)據(jù)接口文件(sockets)
這種類(lèi)型的文件通常被用在網(wǎng)絡(luò)上的數(shù)據(jù)交換。一般在/run或/tmp這些目錄下,表示字符為s
6. 數(shù)據(jù)輸送文件(FIFO,pipe)
FIFO 也是一種特殊的文件類(lèi)型,他主要的目的是解決多個(gè)程序同時(shí)讀寫(xiě)一個(gè)文件所造成的錯(cuò)誤問(wèn)題,表示字符為p
2. 文件擴(kuò)展名
事實(shí)上,Linux 的文件是沒(méi)有所謂的擴(kuò)展名。在 windows 系統(tǒng)中,能被執(zhí)行的文件擴(kuò)展名通常是 .com、.exe、.bat 等,而在 Linux 系統(tǒng)中,不需要擴(kuò)展名,我們只需要這個(gè)文件具備可執(zhí)行的權(quán)限,也就是 x
一個(gè)文件具備了 x 可執(zhí)行的權(quán)限,只能代表他具有可執(zhí)行的能力,而不一定可以執(zhí)行成功。能否執(zhí)行成功取決于該文件的內(nèi)容。
那么在 Linux 中常見(jiàn)的擴(kuò)展名有哪些呢:
*.sh :表示 腳本 或 批處理文件
*.Z、*.tar、*.tar.gz、*.zip、*.tgz :這些都是表示經(jīng)過(guò)打包的壓縮文件
*.html、*.php :網(wǎng)頁(yè)相關(guān)文件,代表 HTML 語(yǔ)法或 PHP 語(yǔ)法的網(wǎng)頁(yè)文件
感謝各位的閱讀,以上就是“Linux權(quán)限管理的方法有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Linux權(quán)限管理的方法有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。