Linux學習筆記3 Linux檔案許可權

2021-10-07 13:28:34 字數 4371 閱讀 5685

linux具有多人多任務環境,為了讓各個使用者具有保密級的檔案資料,因此檔案許可權管理就變得很重要。linux一般講檔案可讀寫的身份分為三個類別,擁有者(owner)、所屬群組(group)、其他人(others),三種身份各有讀(read)、寫(write)、執行(execute)等許可權。

檔案擁有者:

使用者組:

使用者組最有用的功能之一,就是當你在團隊進行協同工作的時候。在linux中可以用過簡易的檔案許可權設定,就能限制非自己團隊(即使用者組)的其他人不能夠閱覽內容,而能夠讓自己團隊的成員修改所建立的檔案。

linux中每個賬號可以有多個使用者組的支援

其他人:

不屬於當前使用者組

linux使用者身份與使用者組記錄的檔案:

在linux系統中,預設情況下,所有的系統上的賬號與一般身份使用者,以及root的相關資訊都記錄在/etc/passwd這個檔案內,個人密碼則是記錄在/etc/shadow這個檔案內。所有組名都記錄在/etc/group中。

檔案屬性:

執行【su -】命令切換到root下,再執行【ls -al】檢視檔名及相關屬性(離開root執行exit回到原使用者身份),-al表示列出所有的檔案詳細的許可權與屬性(包含隱藏檔案,就是檔名第乙個字元為【.】的檔案),一般檔案資訊有7個字段,如下

-rw-r--r--.  1     root      root       1864      may 4 18:01   initial-setup-ks.cfg

檔案型別許可權 鏈結數 檔案擁有者 檔案所屬使用者組 檔案大小 檔案最後被修改的時間 檔名

->其中第一欄代表的檔案型別許可權,共有10位字元(以-rwxrwxr–為例說明)

1、第乙個字元代表這個檔案是目錄、檔案或鏈結檔案等

為[d]則是目錄,[-]則是檔案,[|]表示鏈結檔案,[b]表示為裝置檔案裡面的可供儲存的周邊裝置(可按塊隨機讀取的裝置),[c]表示裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠(一次性讀取裝置)

2、後面的字元,以三個為一組,且均為【rwx】的三個引數的組合,[r][w][x]分別代表可讀、可寫、可執行。三個許可權的位置固定,沒有相應的許可權處為[-]。三組許可權分別為檔案擁有者許可權,加入此使用者組的賬號的許可權,非本人且沒有加入本使用者組的其他賬號的許可權。

->第二欄表示有多少檔名鏈結到此節點(相同的inode號)

->第三欄檔案擁有者賬號,第四欄所屬的使用者組

->第五欄檔案容量大小,單位bytes

->第六欄最新的修改日期(離現在太遠只顯示年份)

linux檔案許可權的重要性:

1、系統保護的功能(root基本上不受系統的許可權所限制,預設都可以讀寫)

2、團隊開發軟體或資料共享的功能

3、未將許可權設定妥當的危害

修改檔案屬性與許可權:

[chgrp]:修改檔案所屬使用者組

被修改的組名必須在/etc/group檔案中存在

語法:

[root@localhost ~]

# chgrp [-r] 使用者組名 dirname/filename ...

選項與引數

-r :進行遞迴(recursive)修改,連同子目錄下所有檔案、目錄都更新成為這個使用者組

例:[root@localhost ~]

# chgrp users initial-setup-ks.cfg

使用者組改為users

[chown]:修改檔案擁有者

使用者必須是已存在系統中的賬號(在/etc/passwd這個檔案中有記錄的使用者名稱)

語法:

[root@localhost ~]

# chown [-r] 賬號名稱 dirname/filename ...

[root@localhost ~]

# chown [-r] 賬號名稱:使用者組名稱 dirname/filename ...

選項與引數

-r :進行遞迴(recursive)修改,連同子目錄下所有檔案都修改

例:[root@localhost ~]

# chown bin initial-setup-ks.cfg

擁有者改為bin

使用[.]或[:]隔開也能單獨修改使用者組

[chmod]:修改檔案的許可權,suid、sgid、sbit等特性

許可權的設定方法有兩種:數字和符號

1、數字型別修改檔案許可權

三種許可權分別用數字代表為:r->4、w->2、x->1

每種身份的三個許可權,採用數字累加方式,如[-rwxrwx—]代表的是:

owner=rwx=4+2+1=7

group=rwx=4+2+1=7

others=—=0+0+0=0

因此,該檔案的許可權數字就是770,修改許可權的語法為:

[root@localhost ~]

# chmod [-r] xyz 檔案或目錄

選項與引數:

xyz:許可權對應的數字

-r:遞迴修改

例:[root@localhost ~]

# chmod 770 。bashrc

2、符號型別修改檔案許可權

三種身份user、group、others分別用u、g、o代表,all表示全體用a代表。三種改變許可權的方式為:+代表加入,-代表移除,=代表設定

例:將許可權改為[-rwxr-xr-x]時,u具有可讀、可寫、可執行許可權,g和o具有可讀與執行許可權

[root@localhost ~]

# chmod u=rwx,go=rx .bashrc

如果不知道原來的檔案許可權,只需要增加每個人的可寫入許可權,為

[root@localhost ~]

# chmod a+w .bashrc

如果去掉全部人的可執行許可權,為

[root@localhost ~]

# chmod a-x .bashrc

目錄與檔案的許可權意義:

1、許可權對檔案的重要性

檔案是實際含有資料的地方,包括一般文字檔案、資料庫檔案、二進位制可執行檔案等。許可權對於檔案的意義如下:

r(read):可讀取此檔案的實際內容,如文字檔案的文字內容

w(write):可以編輯、新增或是修改該檔案的內容(但不包含刪除該檔案)

x(execute):該檔案具有可被系統執行的許可權

在windows系統中,檔案是否具有執行的能力是由檔案的副檔名來判斷,如.exe,.bat,.com等,在linux下,檔案是否能被執行由是否具有【x】這個許可權來決定,和檔名無關。

對於檔案來說,rwx主要都是針對檔案內容而言的,與檔名的存在與否沒有關係,因為檔案記錄的是實際的資料。

2、許可權對目錄的重要性

目錄主要的內容在記錄檔名列表,檔名與目錄有強烈的關聯

r(read contents in directory):表示具有讀取目錄結構列表的許可權,所以當具有(r)許可權時,可以查詢到該目錄下的檔名資料,因此就可以使用ls命令顯示該目錄下檔案列表。

w(modify contents of directory):表示具有改動該目錄結構列表的許可權,即《建立新的檔案與目錄》《刪除已經存在的檔案或目錄(不管檔案許可權是什麼)>《將已存在的檔案或者目錄改名》《移動該目錄內的檔案、目錄位置》,總之,目錄的w許可權就與該目錄下的檔名變動有關。

x(access directory):代表使用者能否進入該目錄成為工作目錄的用途。

如果在某目錄下不具有x許可權,就無法切換到該目錄下,也就無法執行該目錄下的任何命令,即使具有rw許可權。

3、使用者操作功能與許可權

案例:假設兩個檔名,分別是/dir1/file1和/dir2。假設你現在在新使用乙個使用者賬號,那麼這個賬號針對/dir1、/dir1/file1、/dir2這三個檔名來說,分別需要以下許可權才能完成各項任務。

操作/dir1

/dir1/file1

/dir2

重點讀取file1內容xr

-要能夠進入/dir1才能讀到裡面的檔案資料

修改file1內容xrw

-能夠進入/dir1且修改file1才行

執行file1內容xrx

-能夠進入/dir1且file1能執行才行

刪除file1檔案wx-

-能夠進入/dir1具有目錄修改的許可權即可

將file1複製到/dir2xr

wx要能夠讀file1且能夠修改/dir2內的資料

從上面可以看出,要讀乙個檔案時,必須具有這個檔案所在目錄的x許可權

持續更新中

Linux最強學習筆記3 Linux輸入輸出管理

字元裝置 是顯示字元到螢幕上的裝置檔案 輸入輸出 檔名檔案描述符 裝置標準輸入 stdin0鍵盤 標準正確輸出 stdout 1顯示器 標準錯誤輸出 stderr 2顯示器 輸入重定向 型別語法 功能標準輸入 命令 檔案1 把檔案1的內容定向到程式中 多行輸入 命令 識別符號 讀入輸入內容,直到識別...

Linux學習(3) Linux鏈結概念

linux 鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在 linux 的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號 inode in...

Linux 學習筆記 3 Linux常用命令 1

並不建議 照著像命令大全這類的書來學!常用命令大約有200個。檔案命名規則 a 除了 之外所有字元都合法!b 這些字元最好不用 1 空格符,製表符,退格符 2 連線符 3 特殊符號 等 c 避免用.作為開頭,用.開頭表示檔案隱藏 d 注意 大小寫敏感的,類似與c 語言 而windows 並不嚴格區分...