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