導航:首頁 > 操作系統 > linux許可權解釋

linux許可權解釋

發布時間:2022-10-24 03:56:12

A. linux對於文件,目錄,r,w,x許可權分別表示什麼意思

r(Read,讀取):對文件而言,具有讀取文件內容的許可權;對目錄來說,具有瀏覽目錄的許可權。

w(Write,寫入):對文件而言,具有新增、修改文件內容的許可權;對目錄來說,具有刪除、移動目錄內文件的許可權。

x(eXecute,執行):對文件而言,具有執行文件的許可權;對目錄了來說該用戶具有進入目錄的許可權。

(1)linux許可權解釋擴展閱讀:

許可權對於文件的意義

1、也應該明白的是文件是實際含有數據的地方,所以r、w、x許可權對文件來說是與其內容有關的。

2、r許可權:用於此許可權表示可以讀取此文件的實際內容。

3、w許可權:擁有此許可權表示可以編輯、添加或者是修改該文件的內容。但是不包含刪除該文件,因為由上面許可權對於目錄的意義得知刪除文件或目錄的條件是什麼。

4、x許可權:表示該文件具有可以被系統執行的許可權。文件是否能被執行就是由該許可權來決定的,跟文件名沒有絕對的關系。

B. linux的許可權分配特點

Linux中的用戶與用戶組

1、Linux多用戶、多任務的特性

不同用戶具有不同的許可權,每個用戶在許可權允許的范圍內完成不同的任務,

Linux正是通過這種許可權的劃分與管理,實現了多用戶多任務的運行機制。

2、Linux用戶的分類(3種)

在Linux下用戶是根據角色定義的,具體分為三種角色

每個用戶都有一個UID,並且是唯一的,通常UID號的取值范圍是0~65535,

a. 管理員(超級用戶):擁有對系統的最高管理許可權 ,默認是root用戶【0】

b. 系統用戶(虛擬用戶):

也叫「偽」用戶,這類用戶最大特點是不能登錄系統, 它們的存在主要是為了方便系統管理,滿足相應的系統進程對文件屬主的要求。

例如,系統默認的bin、adm、nobody用戶等,一般運行的web服務,默認使用的就是nobody用戶,但是nobody用戶是不能登錄系統的【1-499】

(運行後台程序,daemon守護進程)

c. 普通用戶:只能對自己目錄下的文件進行訪問和修改,具有登錄系統的許可權

例如,上面提到的crx用戶,A,B用戶等【500+】

3、用戶和組的概念

我們知道,Linux是一個多用戶多任務的分時操作系統,如果要使用系統資源,就必須向系統管理員申請一個帳戶,然後通過這個帳戶進入系統。這個帳戶和用戶是一個概念。

通過建立不同屬性的用戶,一方面,可以合理利用和控制系統資源;

另一方面,也可以幫助用戶組織文件,提供對用戶文件的安全性保護.

每個用戶都用一個唯一的用戶名和用戶密碼,在登錄系統時,只有正確輸入了用戶名和密碼,才能進入系統和自己的主目錄。

用戶組是具有相同特徵用戶的邏輯集合。

通過定義用戶組,在很大程度上簡化了管理工作

4、用戶和組的關系:

用戶和用戶組的對應關系有:一對一、一對多、多對一、多對多

一對一:一個用戶可以存在一個組中,也可以是組中的唯一成員。

一對多:一個用戶可以存在多個用戶組中,此用戶具有多個組的共同許可權

多對一:多個用戶可以存在一個組中,這些用戶具有和組相同的許可權

多對多:多個用戶可以存在多個組中,其實就是上面三個對應關系的擴展

為了方便用戶管理,提出了「組」的概念,可以給組分配許可權,把相同用戶的許可權放在同一個組中



5、三個重要配置文件

(1)/etc/passwd (冒號「:」為分隔符)

由於/etc/passwd文件是所有用戶都可讀的,因此就導致了用戶的密碼容易出現泄露,於是,Linux將用戶的密碼信息從/etc/passwd中分離出來,單獨放到一個文件中, 這個文件就是/etc/shadow。該文件只有root用戶擁有讀許可權,從而保證了用戶密碼的安全性。

現在許多linux版本都使用了shadow技術,把真正加密後的用戶密碼存放到/etc/shadow文件中,而在/etc/passwd文件的密碼欄位只存放一個特殊的字元,例如用「x"或者"*"來表示。



(3)/etc/group

5、每個用戶和每個用戶組都有一個屬於自己惟一的一個ID(分別是UID和GID)

6、什麼是shell ?

shell是你(用戶)和Linux(或者更准確的說,是你和Linux內核)之間的介面程序。你在提示符下輸入的每個命令都由shell先解釋然後傳給Linux內核。相當於一個翻譯官。Linux下常用的shell用sh、bash、csh等,

C. LINUX 如何對文件分配許可權 許可權分別是什麼

在Linux中,許可權的所有者分為用戶許可權,組許可權和其他許可權,分別是用字母u, g, o 代表
許可權分為:讀 r , 寫 w , 執行 x。

比如看到了,你一個文件夾1個的許可權是: rwxr-xr-x 這個許可權的意思是這個文件夾的所有者用戶是完全控制(第一段rwx),這個文件夾的所屬組用戶的許可權是讀取和執行(第二段r-x),這個文件夾的對於其他用戶來說是讀取和執行(第三段r-x)。

這些許可權都可以用數字來表示:r 4, w 2 , x 1, 那麼上邊的許可權就是755 (一段一段的加和)更改許可權的命令是chmod。

想這對文件夾/test設置許可權,希望是test文件夾的所屬用戶完全控制,所屬組和其他用戶只能讀取和執行。

(3)linux許可權解釋擴展閱讀:

HFS+卷使用分配文件有以下幾點優勢:

1、使用文件允許分配文件為其自身分配存儲塊,這種方式相對簡單得多,因為這樣卷就只有一種塊類型——分配塊。HFS之所以復雜是因為它使用扇區來存儲分配點陣圖,用分配塊來存儲文件。

2、分配文件可以是不連續的,允許分配信息和用戶數據交叉存取。許多現代的文件系統都採取這種方式以減少文件增大的過程中的磁頭運動行程。

3、分配文件可以擴展。因為分配文件的可擴展性,所以很容易增加磁碟上的分配塊的數量。這無論是對於想減小分配塊的大小還是擴大整個磁碟的空間都是非常有用的。

4、分配文件的可收縮性。可以為不同大小的卷創建適當的鏡像,回寫至磁碟時,即便磁碟很大,也可以建立足夠的分配文件數據;如果寫入較小的磁碟,分配文件又可以收縮至適當的大小。

D. linux文件許可權是指什麼

Linux/UNIX系統的許可權是指:對文件所有者本人、同組用戶、以及其他用戶的可讀、可寫、可執行許可權。
可以通過 chmod 命令設置任何文件的許可權。

E. 測試時需要使用Linux,請問Linux許可權的字母的含義是什麼

文件系統部分

- 普通文件(文本文件,二進制文件,壓縮文件,電影,圖片。。。)
d 目錄文件(藍色)
b 設備文件(塊設備)存儲設備硬碟,U盤 /dev/sda, /dev/sda1
c 設備文件(字元設備)列印機,終端 /dev/tty1
l 鏈接文件(淡藍色)
s 套接字文件
p 管道文件

文件許可權部分

- //表普通文件

rwx //讀、寫、執行(數字表示4、2、1)

a所有人,= 表覆蓋

s是此處含有x許可權,當去除x許可權則為S。

s分為suid和sgid,suid可以為普通用戶提權,sgid可以讓組屬性得以繼承。

基本許可權 ACL

acl許可權的理解:假如有一個test.txt文件,只有屬主和屬組有rwx許可權,其他用戶沒許可權。有一個用戶既不在該用戶屬組也不是屬主,想要訪問test.txt文件,就得通過acl許可權

。即acl許可權可以針對單個用戶。

mask許可權

acl許可權中有個"mask"的選項,它就是ACL許可權的最大許可權,現在是rwx,當你設置某個用戶或組的ACL許可權時,要跟mask的許可權「相與」之後產生的許可權才是該用戶的最終許可權,也就是加入mask的最大許可權是rx,但是你給st用戶設置的是rwx許可權,此時st用戶它的許可權只有rx的許可權,因為與最大許可權「相與」得出的結果就是rx。

4、特殊許可權chattr:常用於鎖定某個文件,拒絕修改。可參考《Linux就該這么學》了解更多Linux知識。

F. linux RWX許可權的解讀

注意

chown 和 chgrp 都有一個 -R 選項,該選項可以用來告訴它們遞歸地將所屬權和組改變應用到整個目錄樹中。例如:

注意 :除非您是超級用戶,否則您不可以使用 chown,然而任何人都可以使用 chgrp 來將文件的組所有權改為他們所屬的組。

該操作chmod 示例已經影響到了所有三個三元組 — 用戶、組和所有其他用戶

亦可指定,對於「用戶」三元組使用 u,對於「組」三元組使用 g,對於「其他/每個人」使用 o

定製化設定許可權

直到現在為止,我們使用了叫做「符號」的模式來用 chmod 指定許可權的改變。然而,指定許可權還有一種普遍使用的方法 — 使用 4 位八進制數。使用叫做數字許可權語法的語法,每一位代表一個許可權三元組。例如,在 1777 中,777 設置本章我們所討論的「owner」、「group」和「other」標志。1 用來設置專門的許可權位,我們將在本章的結束部分講到。

舉例:7=4+2+1,讀寫執行,5=4+1,讀執行。各種組合方式。
rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0

當進程創建了新文件時,它指定新文件應該具有的許可權。通常,所請求的模式是 0666(每個人可讀和可寫),它比我們希望的具有更多的許可權。幸運的是,不管什麼時候創建了新文件,Linux 將參考叫做「umask」的東西。系統用 umask 值來將初始指定的許可權降低為更合理、更安全的許可權。您可以通過在命令行中輸入 umask 來查看您當前的 umask 設置:

Linux 系統上,umask 的預設值一般為 0022,它允許其他人讀您的新文件(如果他們可以得到它們),但是不能進行修改。為了在預設的情況下使新文件更安全,您可以改變 umask 設置: $ umask 0077umask 將確保組和其他用戶對於新創建的文件絕對沒有任何許可權。那麼,umask 怎樣工作呢? 與文件的「常規」許可權不同,umask 指定應該關閉哪一個許可權 。我們來參閱一下我們的「模式到數字」映射表,從而使我們可以理解 0077 的 umask 的意思是什麼: 模式 數字 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0 使用該表,0077 的最後三位擴展為 ---rwxrwx。現在,請記住 umask 告訴系統禁用哪個許可權。根據推斷,我們可以看到將關閉所有「組」和「其他」許可權,而「用戶」許可權將保留不動。

當您最初登錄時,將啟動一個新的 shell 進程。您已經知道,但是您可能還不知道這個新的 shell進程(通常是 bash)使用您的用戶標識運行。照這樣,bash 程序可以訪問所有屬於您的文件和目錄。事實上,作為用戶,我們完全依靠其它程序來代表我們執行操作。因為您啟動的程序繼承了您的用戶標識,因此它們不能訪問任何不允許您訪問的文件系統對象。例如,一般用戶不能直接修改 passwd 文件,因為「write」標志已經對除「root 用戶」以外的每個用戶關閉:

但是,一般用戶確實需要在他們需要改變其密碼的任何時候,能夠修改 /etc/passwd(至少間接地)。但是,如果用戶不能修改該文件,究竟怎樣完成這個工作呢?
Suid
幸好,Linux 許可權模型有兩個專門的位,叫做「suid」和「sgid」。當設置了一個可執行程序的「suid」這一位時,它將代表可執行文件的所有者運行,而不是代表啟動程序的人運行。現在,回到 /etc/passwd 問題。如果看一看 passwd 可執行文件,我們可以看到它屬於 root 用戶:
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root wheel 17588 Sep 24 00:53 /usr/bin/passwd
您還將注意到,這里有一個 s 取替了用戶許可權三元組中的一個 x。這表明,對於這個特殊程序,設置了 suid 和可執行位。由於這個原因,當 passwd 運行時,它將代表 root 用戶執行(具有完全超級用戶訪問權),而不是代表運行它的用戶運行。又因為 passwd 以 root 用戶訪問權運行,所以能夠修改 /etc/passwd 文件,而沒有什麼問題。
suid/sgid 告誡說明
我們看到了 suid 怎樣工作,sgid 以同樣的方式工作。它允許程序繼承程序的組所有權,而不是當前用戶的程序所有權。這里有一些關於 suid 和 sgid 的其它的但是很重要的信息。首先,suid 和 sgid 占據與 ls -l 清單中 x 位相同的空間。如果還設置了 x 位,則相應的位表示為 s(小寫)。但是,如果沒有設置 x 位,它將表示為 S(大寫)。另一個很重要的提示:在許多環境中,suid 和 suid 很管用,但是不恰當地使用這些位可能使系統的安全遭到破壞。最好盡可能地少用「suid」程序。passwd 命令是為數不多的必須使用「suid」的命令之一。
改變 suid 和 sgid
設置和除去 suid 與 sgid 位相當簡單。這里,我們設置 suid 位:

此處,我們從一個目錄除去 sgid 位。我們將看到 sgid 位怎樣影響下面幾屏中的目錄:

許可權和目到此為止,我們從常規文件的角度來看許可權。當從目錄的角度看許可權時,情況有一點不同。目錄使用同樣的許可權標志,但是它們被解釋為表示略微不同的含義。 對於一個目錄,如果設置了「read」標志,您可以列出目錄的內容;「write」表示您可以在目錄中創建文件,「execute」表示您可以進入該目錄並訪問內部的任何子目錄。沒有「execute」標志,目錄內的文件系統對象是不可訪問的。沒有「read」標志,目錄內的文件系統對象是不可查看的,但是只要有人知道磁碟上對象的完整路徑,就仍然可以訪問目錄內的對象。目錄和 sgid如果啟用了目錄的「sgid」標志,在目錄內創建的任何文件系統對象將繼承目錄的組。當您需要創建一個屬於同一組的一組人使用的目錄樹時,這種特殊的功能很管用。只需要這樣做:

現在,mygroup 組中的所有用戶都可以在 /home/groupspace 內創建文件或目錄,同樣,他們也將自動地分配到 mygroup 的組所有權。根據用戶的 umask 設置,新文件系統對象對於 mygroup 組的其他成員來說,可以或不可以是可讀、可寫或可執行的。目錄和刪除預設情況下,Linux 目錄以一種不是在所有情況下都很理想的方式表現。一般來說,只要對一個目錄有寫訪問權,任何人都可以重命名或刪除該目錄中的文件。對於個別用戶使用的目錄,這種行為是很合理的。但是,對於很多用戶使用的目錄來說,尤其是 /tmp 和 /var/tmp,這種行為可能會產生麻煩。因為任何人都可以寫這些目錄,任何人都可以刪除或重命名任何其他人的文件 — 即使是不屬於他們的!顯然,當任何其他用戶在任何時候都可以輸入「rm -rf /tmp/*」並損壞每個人的文件時,很難把 /tmp 用於任何有意義的文件。所幸,Linux 有叫做「粘滯位」(sticky bit)的東西。當給 /tmp 設置了粘滯位(用chmod +t),唯一能夠刪除或重命名 /tmp 中文件的是該目錄的所有者(通常是 root 用戶)、文件的所有者或 root 用戶。事實上,所有 Linux 分發包都預設地啟用了 /tmp 的粘滯位,而您還可以發現粘滯位在其它情況下也很管用。難以理解的第一位
總結本章,我們最後來看一看數字模式的難以理解的第一位數。您可以看到,這個第一位數
用來設置 sticky、suid 和 sgid 位:
suid sgid sticky 模式數字 on on on 7 on on off 6 on off on 5 on off off 4 off on on 3 off on off 2 off off on 1 off off off 0
這里有一個怎樣用 4 位數字模式來設置一個目錄的許可權的示例,該目錄將由一個工作組使用:
# chmod 1775 /home/groupfiles
請想一想 1755 數字模式許可權設置的含義。

linux許可權補充:rwt rwT rws rwS 特殊許可權

眾所周知,Linux的文件許可權如: 777;666等,其實只要在相應的文件上加上UID的許可權,就可以用到加許可權人的身份去運行這個文件。所以我們只需要將bash復制出來到另一個地方,然後用root加上UID許可權,只要用戶運行此Shell就可以用用root的身份來執行任何文件了

一個文件都有一個所有者, 表示該文件是誰創建的. 同時, 該文件還有一個組編號, 表示該文件所屬的組, 一般為文件所有者所屬的組.

如果是一個可執行文件, 那麼在執行時, 一般該文件只擁有調用該文件的用戶具有的許可權. 而setuid, setgid 可以來改變這種設置.

setuid:該位是讓普通用戶可以以root用戶的角色運行只有root帳號才能運行的程序或命令。比如我們用普通用戶運行passwd命令來更改自己的口令,實際上最終更改的是/etc/passwd文件我們知道/etc/passwd文件是用戶管理的配置文件,只有root許可權的用戶才能更改

[root@localhost ~]# ls -l /etc/passwd

-rw-r--r-- 1 root root 2379 04-21 13:18 /etc/passwd

作為普通用戶如果修改自己的口令通過修改/etc/passwd肯定是不可完成的任務,但是不是可以通過一個命令來修改呢答案是肯定的,作為普通用戶可以通過passwd 來修改自己的口令這歸功於passwd命令的許可權我們來看一下;

[root@localhost ~]# ls -l /usr/bin/passwd

-r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd

因為/usr/bin/passwd 文件已經設置了setuid 許可權位(也就是r-s--x--x中的s),所以普通用戶能臨時變成root,間接的修改/etc/passwd,以達到修改自己口令的許可權

setgid: 該許可權只對目錄有效. 目錄被設置該位後, 任何用戶在此目錄下創建的文件都具有和該目錄所屬的組相同的組.

sticky bit: 該位可以理解為防刪除位. 一個文件是否可以被某用戶刪除, 主要取決於該文件所屬的組是否對該用戶具有寫許可權. 如果沒有寫許可權, 則這個目錄下的所有文件都不能被刪除, 同時也不能添加新的文件. 如果希望用戶能夠添加文件但同時不能刪除文件, 則可以對文件使用sticky bit位. 設置該位後, 就算用戶對目錄具有寫許可權, 也不能刪除該文件.

下面說一下如何操作這些標志:

操作這些標志與操作文件許可權的命令是一樣的, 都是 chmod. 有兩種方法來操作,

chmod g+s tempdir -- 為tempdir目錄加上setgid標志 (setgid 只對目錄有效)

chmod o+t temp -- 為temp文件加上sticky標志 (sticky只對文件有效)

abc

a - setuid位, 如果該位為1, 則表示設置setuid 4---

b - setgid位, 如果該位為1, 則表示設置setgid 2---

c - sticky位, 如果該位為1, 則表示設置sticky 1---

設置完這些標志後, 可以用 ls -l 來查看. 如果有這些標志, 則會在原來的執行標志位置上顯示. 如

rwsrw-r-- 表示有setuid標志

rwxrwsrw- 表示有setgid標志

rwxrw-rwt 表示有sticky標志

那麼原來的執行標志x到哪裡去了呢? 系統是這樣規定的, 如果本來在該位上有x, 則這些特殊標志顯示為小寫字母 (s, s, t). 否則, 顯示為大寫字母 (S, S, T)
https://blog.csdn.net/zhao12795969/article/details/53448039/

G. Linux許可權詳解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

許可權簡介

Linux系統上對文件的許可權有著嚴格的控制,用於如果相對某個文件執行某種操作,必須具有對應的許可權方可執行成功。

Linux下文件的許可權類型一般包括讀,寫,執行。對應字母為 r、w、x。

Linux下許可權的粒度有

擁有者 、群組 、其它組 三種。每個文件都可以針對三個粒度,設置不同的rwx(讀寫執行)許可權。通常情況下,一個文件只能歸屬於一個用戶和組,

如果其它的用戶想有這個文件的許可權,則可以將該用戶加入具備許可權的群組,一個用戶可以同時歸屬於多個組。

Linux上通常使用chmod命令對文件的許可權進行設置和更改。

一、快速入門

更改文件許可權 (chmod命令)

一般使用格式

chmod [可選項]

可選項:  -c, --changes          like verbose but report onlywhena change is made (若該檔案許可權確實已經更改,才顯示其更改動作)  -f, --silent, --quiet  suppress most error messages(若該檔案許可權無法被更改也不要顯示錯誤訊息)  -v, --verbose          output a diagnosticforevery file processed(顯示許可權變更的詳細資料)      --no-preserve-rootdonottreat'/'specially (the default)      --preserve-root    fail to operate recursively on'/'      --reference=RFILE  use RFILE's mode instead of MODE values-R, --recursive        change files and directories recursively(以遞歸的方式對目前目錄下的所有檔案與子目錄進行相同的許可權變更)--help顯示此幫助信息--version顯示版本信息mode :許可權設定字串,詳細格式如下 :[ugoa...][[+-=][rwxX]...][,...],其中[ugoa...]

u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。[+-=]

+ 表示增加許可權,- 表示取消許可權,= 表示唯一設定許可權。[rwxX]

r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。

file...文件列表(單個或者多個文件、文件夾)

範例:

設置所有用戶可讀取文件 a.conf

設置 c.sh 只有 擁有者可以讀寫及執行

設置文件 a.conf 與 b.xml 許可權為擁有者與其所屬同一個群組 可讀寫,其它組可讀不可寫

設置當前目錄下的所有檔案與子目錄皆設為任何人可讀寫

數字許可權使用格式

在這種使用方式中,首先我們需要了解數字如何表示許可權。

首先,我們規定 數字 4 、2 和 1表示讀、寫、執行許可權(具體原因可見下節許可權詳解內容),即 r=4,w=2,x=1

。此時其他的許可權組合也可以用其他的八進制數字表示出來,如: rwx = 4 + 2 + 1 = 7 rw = 4 + 2 = 6 rx = 4

+1 = 5 即

若要同時設置

rwx (可讀寫運行) 許可權則將該許可權位 設置 為 4 + 2 + 1 = 7 若要同時設置 rw- (可讀寫不可運行)許可權則將該許可權位 設置

為 4 + 2 = 6 若要同時設置 r-x (可讀可運行不可寫)許可權則將該許可權位 設置 為 4 +1 = 5

上面我們提到,每個文件都可以針對三個粒度,設置不同的rwx(讀寫執行)許可權。即我們可以用用三個8進制數字分別表示 擁有者 、群組 、其它組( u、 g 、o)的許可權詳情,並用chmod直接加三個8進制數字的方式直接改變文件許可權。語法格式為 :

chmod file...

其中a,b,c各為一個數字,分別代表User、Group、及Other的許可權。相當於簡化版的chmod u=許可權,g=許可權,o=許可權file...而此處的許可權將用8進制的數字來表示User、Group、及Other的讀、寫、執行許可權

範例:

設置所有人可以讀寫及執行

設置擁有者可讀寫,其他人不可讀寫執行

更改文件擁有者(chown命令)

linux/Unix 是多人多工作業系統,每個的文件都有擁有者(所有者),如果我們想變更文件的擁有者(利用 chown 將文件擁有者加以改變),一般只有系統管理員(root)擁有此操作許可權,而普通用戶則沒有許可權將自己或者別人的文件的擁有者設置為別人。

語法格式:

chown [可選項] user[:group] file...

使用許可權:root說明:[可選項] :同上文chmoser :新的文件擁有者的使用者group :新的文件擁有者的使用者群體(group)

範例:

設置文件 d.key、e.scrt的擁有者設為 users 群體的 tom

設置當前目錄下與子目錄下的所有文件的擁有者為 users 群體的 James

二、Linux許可權詳解

Linux系統上對文件的許可權有著嚴格的控制,用於如果相對某個文件執行某種操作,必須具有對應的許可權方可執行成功。這也是Linux有別於Windows的機制,也是基於這個許可權機智,Linux可以有效防止病毒自我運行,因為運行的條件是必須要有運行的許可權,而這個許可權在Linux是用戶所賦予的。

Linux的文件許可權有以下設定:

Linux下文件的許可權類型一般包括讀,寫,執行。對應字母為 r、w、x。

Linux下許可權的屬組有 擁有者 、群組 、其它組 三種。每個文件都可以針對這三個屬組(粒度),設置不同的rwx(讀寫執行)許可權。

通常情況下,一個文件只能歸屬於一個用戶和組, 如果其它的用戶想有這個文件的許可權,則可以將該用戶加入具備許可權的群組,一個用戶可以同時歸屬於多個組。

如果我們要表示一個文件的所有許可權詳情,有兩種方式:

第一種是十位二進製表示法,(三個屬組每個使用二進制位,再加一個最高位共十位),可簡化為三位八進制形式

另外一種十二位二進製表示法(十二個二進制位),可簡化為四位八進制形式

十位許可權表示

常見的許可權表示形式有:

-rw------- (600)只有擁有者有讀寫許可權。-rw-r--r-- (644)只有擁有者有讀寫許可權;而屬組用戶和其他用戶只有讀許可權。-rwx------ (700)只有擁有者有讀、寫、執行許可權。-rwxr-xr-x (755)擁有者有讀、寫、執行許可權;而屬組用戶和其他用戶只有讀、執行許可權。-rwx--x--x (711)擁有者有讀、寫、執行許可權;而屬組用戶和其他用戶只有執行許可權。-rw-rw-rw- (666)所有用戶都有文件讀、寫許可權。-rwxrwxrwx (777)所有用戶都有讀、寫、執行許可權。

後九位解析:我們知道Linux許可權總共有三個屬組,這里我們給每個屬組使用三個位置來定義三種操作(讀、寫、執行)許可權,合起來則是許可權的後九位。 上面我們用字元表示許可權,其中 -代表無許可權,r代表讀許可權,w代表寫許可權,x代表執行許可權。

實際上,後九位每個位置的意義(代表某個屬組的某個許可權)都是固定的,如果我們將各個位置許可權的有無用二進制數 1和 0來代替,則只讀、只寫、只執行許可權,可以用三位二進制數表示為

r--=100-w-=010--x=001---=000

轉換成八進制數,則為 r=4, w=2, x=1, -=0(這也就是用數字設置許可權時為何是4代表讀,2代表寫,1代表執行)

實際上,我們可以將所有的許可權用二進制形式表現出來,並進一步轉變成八進制數字:

rwx=111=7rw-=110=6r-x=101=5r--=100=4-wx=011=3-w-=010=2--x=001=1---=000=0

由上可以得出,每個屬組的所有的許可權都可以用一位八進制數表示,每個數字都代表了不同的許可權(權值)。如 最高的許可權為是7,代表可讀,可寫,可執行。

故 如果我們將每個屬組的許可權都用八進制數表示,則文件的許可權可以表示為三位八進制數

-rw------- =600-rw-rw-rw- =666-rwxrwxrwx =777

關於第一位最高位的解釋:上面我們說到了許可權表示中後九位的含義,剩下的第一位代表的是文件的類型,類型可以是下面幾個中的一個:

d代表的是目錄(directroy)-代表的是文件(regular file)s代表的是套字文件(socket)p代表的管道文件(pipe)或命名管道文件(named pipe)l代表的是符號鏈接文件(symbolic link)b代表的是該文件是面向塊的設備文件(block-oriented device file)c代表的是該文件是面向字元的設備文件(charcter-oriented device file)

十二位許可權(Linux附加許可權)

附加許可權相關概念

linux除了設置正常的讀寫操作許可權外,還有關於一類設置也是涉及到許可權,叫做Linxu附加許可權。包括 SET位許可權(suid,sgid)和粘滯位許可權(sticky)。

SET位許可權:

suid/sgid是為了使「沒有取得特權用戶要完成一項必須要有特權才可以執行的任務」而產生的。

一般用於給可執行的程序或腳本文件進行設置,其中SUID表示對屬主用戶增加SET位許可權,SGID表示對屬組內用戶增加SET位許可權。執行文件被設置了SUID、SGID許可權後,任何用戶執行該文件時,將獲得該文件屬主、屬組賬號對應的身份。在許多環境中,suid

和 sgid 很管用,但是不恰當地使用這些位可能使系統的安全遭到破壞。所以應該盡量避免使用SET位許可權程序。(passwd

命令是為數不多的必須使用「suid」的命令之一)。

suid(set User ID,set UID)的意思是進程執行一個文件時通常保持進程擁有者的UID。然而,如果設置了可執行文件的suid位,進程就獲得了該文件擁有者的UID。

sgid(set Group ID,set GID)意思也是一樣,只是把上面的進程擁有者改成進程組就好了。

SET位許可權表示形式(10位許可權):

如果一個文件被設置了suid或sgid位,會分別表現在所有者或同組用戶的許可權的可執行位上;如果文件設置了suid還設置了x(執行)位,則相應的執行位表示為s(小寫)。但是,如果沒有設置x位,它將表示為S(大寫)。如:

1、-rwsr-xr-x表示設置了suid,且擁有者有可執行許可權2、-rwSr--r--表示suid被設置,但擁有者沒有可執行許可權3、-rwxr-sr-x表示sgid被設置,且群組用戶有可執行許可權4、-rw-r-Sr--表示sgid被設置,但群組用戶沒有可執行許可權

設置方式:

SET位許可權可以通過chmod命令設置,給文件加suid和sgid的命令如下(類似於上面chmod賦予一般許可權的命令):

chmo+sfilename設置suid位chmo-sfilename去掉suid設置chmodg+sfilename設置sgid位chmodg-sfilename去掉sgid設置

粘滯位許可權:

粘滯位許可權即sticky。一般用於為目錄設置特殊的附加許可權,當目錄被設置了粘滯位許可權後,即便用戶對該目錄有寫的許可權,也不能刪除該目錄中其他用戶的文件數據。設置了粘滯位許可權的目錄,是用ls查看其屬性時,其他用戶許可權處的x將變為t。

使用chmod命令設置目錄許可權時,+t、-t許可權模式可分別用於添加、移除粘滯位許可權。

粘滯位許可權表示形式(10位許可權):

一個文件或目錄被設置了粘滯位許可權,會表現在其他組用戶的許可權的可執行位上。如果文件設置了sticky還設置了x(執行)位,其他組用戶的許可權的可執行位為t(小寫)。但是,如果沒有設置x位,它將表示為T(大寫)。如:

1、-rwsr-xr-t表示設置了粘滯位且其他用戶組有可執行許可權2、-rwSr--r-T表示設置了粘滯位但其他用戶組沒有可執行許可權

設置方式:

sticky許可權同樣可以通過chmod命令設置:

chmod +t <文件列表..>

十二位的許可權表示方法

附加許可權除了用十位許可權形式表示外,還可以用用十二位字元表示。

11109876543210S  G  T r w x r w x r w x

SGT分別表示SUID許可權、SGID許可權、和 粘滯位許可權,這十二位分別對應關系如下:

第11位為SUID位,第10位為SGID位,第9位為sticky位,第8-0位對應於上面的三組rwx位(後九位)。

在這十二位的每一位上都置值。如果有相應的許可權則為1, 沒有此許可權則為0。

-rw-r-sr--的值為:010110100100-rwsr-xr-x的值為:100111101101-rwsr-sr-x的值為:110111101101-rwsr-sr-t的值為:111111101101

如果將則前三位SGT也轉換成一個二進制數,則

suid 的八進制數字是4

sgid 的代表數字是 2

sticky 位代表數字是1

這樣我們就可以將十二位許可權三位三位的轉化為4個八進制數。其中

最高的一位八進制數就是suid,sgdi,sticky的權值。

第二位為 擁有者的權值

第三位為 所屬組的權值

最後一位為 其他組的權值

附加許可權的八進制形式

通過上面,我們知道,正常許可權和附加許可權可以用4位八進制數表示。類似於正常許可權的數字許可權賦值模式(使用三位八進制數字賦值)

chmod file...

我們可以進一步使用4位八進制數字同時賦值正常許可權和附加許可權。

chmod file...

其中s是表示附加許可權的把八進制數字,abc與之前一致,分別是對應User、Group、及Other(擁有者、群組、其他組)的許可權。因為SUID對應八進制數字是4,SGID對於八進制數字是2,則「4755」表示設置SUID許可權,「6755」表示同時設置SUID、SGID許可權。

我們進一步將上小節的例子中的二進制數轉變為八進製表示形式,則

-rw-r-sr-- =010110100100=2644-rwsr-xr-x =100111101101=4755-rwsr-sr-x =110111101101=6755-rwsr-sr-t =111111101101=7755

對比範例:

設置 netlogin 的許可權為擁有者可讀寫執行,群組和其他許可權為可讀可執行

設置 netlogin 的許可權為擁有者可讀寫執行,群組和其他許可權為可讀可執行,並且設置suid

chmod 4755與chmod 755對比多了附加許可權值4,這個4表示其他用戶執行文件時,具有與所有者同樣的許可權(設置了SUID)。

為什麼要設置4755 而不是 755?

假設netlogin是root用戶創建的一個上網認證程序,如果其他用戶要上網也要用到這個程序,那就需要root用戶運行chmod 755 netlogin命令使其他用戶也能運行netlogin。但假如netlogin執行時需要訪問一些只有root用戶才有權訪問的文件,那麼其他用戶執行netlogin時可能因為許可權不夠還是不能上網。這種情況下,就可以用 chmod 4755 netlogin 設置其他用戶在執行netlogin也有root用戶的許可權,從而順利上網。

H. 簡述Linux文件和目錄的許可權,並解釋其具體含義

- rwx rwx rwx: "-"表示普通文件,後面三個「rwx」從左到右分別表示文件擁有者(用戶)、用戶所在組、組外用戶的讀、寫、執行許可權,一般新建一個文件,其許可權是755,翻譯成二進制就是:111 101 101。翻譯成許可權,就是rwx r-x r-x,即用戶(文件創建者)擁有讀、寫、執行的許可權,其他人只有讀、執行的許可權,而沒有寫許可權。另外需要注意的是,你能否訪問一個目錄,是由「執行」的許可權決定的,而不是擁有對目錄的讀許可權就能訪問。

I. linux對於文件,目錄,r,w,x許可權分別表示什麼意思

r(Read,讀取):對文件而言,具有讀取文件內容的許可權;對目錄來說,具有瀏覽目
錄的許可權。
w(Write,寫入):對文件而言,具有新增、修改文件內容的許可權;對目錄來說,具有刪除、移動目錄內文件的許可權。
x(eXecute,執行):對文件而言,具有執行文件的許可權;對目錄了來說該用戶具有進入目錄的許可權。

J. linux中的 代表什麼許可權

Linux的用戶在登錄(login)之後,就帶有一個用戶身份(user ID, UID)和一個組身份(group ID, GID)。在Linux文件管理背景知識中,我們又看到,每個文件又有九位的許可權說明,用來指明該文件允許哪些用戶執行哪些操作(讀、寫或者執行)。
(參考Linux文件管理背景知識)

一般來說,Linux的用戶信息保存在/etc/passwd中,組信息保存在/etc/group中,文件的每一行代表一個用戶/組。早期的Linux將密碼以名碼的形式保存在/etc/passwd中,而現在則多以暗碼(也就是加密之後的形式)的形式保存在/etc/shadow中。將密碼存儲在/etc/shadow中提高了密碼的安全性,因為/etc/passwd允許所有人查看,而/etc/shadow只允許root用戶查看。

進程許可權
但是,在Linux中,用戶的指令是在進程的范圍內進行的。當我們向對某個文件進行操作的時候,我們需要在進程中運行一個程序,在進程中對文件打開,並進行讀、寫或者執行的操作。因此,我們需要將用戶的許可權傳遞給進程,以便進程真正去執行操作。例如我們有一個文件a.txt, 文件中為一個字元串:
Hello world!

我以用戶Vamei的身份登錄,並在shell中運行如下命令:
$cat a.txt
整個運行過程以及文件讀取如下:

我們可以看到,整個過程中我們會有兩個進程,一個是shell本身(2256),一個是shell復制自身,再運行/bin/cat (9913)。圖中的fork, exec, PID可參看Linux進程基礎。第二個進程總共對文件系統進行了兩次操作,一次是執行(x)文件/bin/cat,另外一次是讀取(r)文件a.txt。使用$ls -l 查看這兩個文件的許可權:
$ls -l /bin/cat
-rwxr-xr-x 1 root root 46764 Apr 1 2012 /bin/cat

$ls -l a.txt
-rw-rw-r-- 1 Vamei Vamei 14 Oct 7 09:14 a.txt
從上面可以看到(參考Linux文件管理背景知識),/bin/cat讓所有用戶都享有執行的權利,而Vamei作為a.txt的擁有者,對a.txt享有讀取的權利。

讓我們進入更多的細節 (The devil is in the details)。在進行這兩次操作的時候,盡管用戶Vamei擁有相應的許可權,但我們發現,真正做工作的是進程9913。我們要讓這個進程得到相應的許可權。實際上,每個進程會維護有如下6個ID:
真實身份: real UID, real GID
有效身份: effective UID, effective GID
存儲身份:saved UID, saved GID
其中,真實身份是我們登錄使用的身份,有效身份是當該進程真正去操作文件時所檢查的身份,存儲身份較為特殊,我們等一下再深入。當進程fork的時候,真實身份和有效身份都會復制給子進程。大部分情況下,真實身份和有效身份都相同。當Linux完成開機啟動之後,init進程會執行一個login的子進程。我們將用戶名和密碼傳遞給login子進程。login在查詢了/etc/passwd和/etc/shadow,並確定了其合法性之後,運行(利用exec)一個shell進程,shell進程真實身份被設置成為該用戶的身份。由於此後fork此shell進程的子進程都會繼承真實身份,所以該真實身份會持續下去,直到我們登出並以其他身份再次登錄(當我們使用su成為root的時候,實際上就是以root身份再次登錄,此後真實身份成為root)。

最小許可權原則
每個進程為什麼不簡單地只維護真實身份,卻選擇費盡麻煩地去維護有效身份和存儲身份呢?這牽涉到Linux的「最小特權」(least priviledge)的原則。Linux通常希望進程只擁有足夠完成其工作的特權,而不希望賦予更多的特權給它。從設計上來說,最簡單的是賦予每個進程以super user的特權,這樣進程就可以想做什麼做什麼。然而,這對於系統來說是一個巨大的安全漏洞,特別是在多用戶環境下,如果每個用戶都享有無限制的特權,就很容易破壞其他用戶的文件或者系統本身。「最小特權」就是收縮進程所享有的特權,以防進程濫用特權。

然而,進程的不同階段可能需要不同的特權。比如一個進程最開始的有效身份是真實身份,但運行到中間的時候,需要以其他的用戶身份讀入某些配置文件,然後再進行其他的操作。為了防止其他的用戶身份被濫用,我們需要在操作之前,讓進程的有效身份變更回來成為真實身份。這樣,進程需要在兩個身份之間變化。

存儲身份就是真實身份之外的另一個身份。當我們將一個程序文件執行成為進程的時候,該程序文件的擁有者(owner)和擁有組(owner group)可以被,存儲成為進程的存儲身份。在隨後進程的運行過程中,進程就將可以選擇將真實身份或者存儲身份復制到有效身份,以擁有真實身份或者存儲身份的許可權。並不是所有的程序文件在執行的過程都設置存儲身份的。需要這么做的程序文件會在其九位(bit)許可權的執行位的x改為s。這時,這一位(bit)叫做set UID bit或者set GID bit。

$ls -l /usr/bin/uuidd
-rwsr-sr-x 1 libuuid libuuid 17976 Mar 30 2012 /usr/sbin/uuidd

當我以root(UID), root(GID)的真實身份運行這個程序的時候,由於擁有者(owner)有s位的設定,所以saved UID被設置成為libuuid,saved GID被設置成為libuuid。這樣,uuidd的進程就可以在兩個身份之間切換。

我們通常使用chmod來修改set-UID bit和set-GID bit:

$chmod 4700 file

我們看到,這里的chmod後面不再只是三位的數字。最前面一位用於處理set-UID bit/set-GID bit,它可以被設置成為4/2/1以及或者上面數字的和。4表示為set UID bit, 2表示為set GID bit,1表示為sticky bit (暫時不介紹)。必須要先有x位的基礎上,才能設置s位。

閱讀全文

與linux許可權解釋相關的資料

熱點內容
國貨哪個品牌最好app 瀏覽:949
看哪個app給錢最多 瀏覽:178
編程靠經驗嗎 瀏覽:759
c教程pdf下載地址 瀏覽:573
製作視頻哪個app有瘦臉功能 瀏覽:649
linux查看線程內存 瀏覽:509
命令行簽名apk 瀏覽:92
網頁照片旋轉源碼 瀏覽:842
QQ會員頭像源碼 瀏覽:263
內核命令行 瀏覽:324
腳本提取源碼器 瀏覽:930
smo源碼 瀏覽:877
為什麼要搭建單獨伺服器 瀏覽:480
編譯器有什麼控制 瀏覽:893
希爾伯特pdf 瀏覽:645
php數組全數字 瀏覽:647
解密塔羅牌小程序源碼 瀏覽:862
聚合跑分源碼 瀏覽:555
注冊dns伺服器寫什麼 瀏覽:881
linux安裝deb包 瀏覽:523