偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

你了解 Linux 文件權(quán)限和所有權(quán)嗎?

系統(tǒng) Linux
理解文件所有權(quán)和權(quán)限對于 Linux 用戶來說至關(guān)重要。本文將介紹相關(guān)內(nèi)容。

Linux 是被設(shè)計為多用戶的操作系統(tǒng)。在企業(yè)級系統(tǒng)中,會有多個用戶訪問同一個系統(tǒng)。但是,如果任何用戶都可以訪問和修改屬于其他用戶或系統(tǒng)所有的文件,這肯定會帶來安全風險。

這就是為什么 UNIX 和 Linux(Linux 是類 UNIX 的系統(tǒng))有內(nèi)置的安全措施,這確保了文件或目錄只能由所需的用戶訪問、修改或執(zhí)行。

在 Linux 中,哪個用戶能夠訪問哪個文件取決于兩個因素:

  • 文件所有權(quán)
  • 文件權(quán)限

理解文件所有權(quán)和權(quán)限對于 Linux 用戶來說至關(guān)重要。本文將介紹相關(guān)內(nèi)容。

Linux 中的文件所有權(quán)

注:本文所提到的文件,也包括目錄(Linux中,目錄也是屬于文件)。

Linux 中的每個文件和目錄都有三種所有者:

用戶

用戶是文件的所有者。你創(chuàng)建了一個文件,那么這個文件的所有者就是你。所有權(quán)也是可以被修改的(我們會在后面介紹到)。

每個用戶都是某個組的一部分。一個組由多個用戶組成,這是在多用戶環(huán)境中管理用戶的一種方法。

比如,你有開發(fā)組,質(zhì)保組,以及系統(tǒng)管理組都訪問統(tǒng)一系統(tǒng),那么你應該為他們單獨創(chuàng)建組。這樣,你可以有效的管理文件和系統(tǒng)的安全性。這樣也會節(jié)省時間,因為你無需手動為每個用戶添加權(quán)限,而只需要將他們添加到相關(guān)組中,并更改組的權(quán)限即可。本文稍后會做詳細介紹。

即便你是這個系統(tǒng)中的唯一用戶,那么你仍然是眾多組中的一員。像 Ubuntu 這樣的發(fā)行版,也會為一個用戶創(chuàng)建相同名稱的組。

注:運行 groups 命令可以查看你所屬的用戶組。

其他

“其他”可以被視為系統(tǒng)中所有用戶的超級組?;旧希魏文軌蛟L問該系統(tǒng)的人都屬于這個組。

總體而言,“用戶”是單個用戶,“組”是用戶的集合,“其他”是由系統(tǒng)中所有的用戶組成。

Linux 中的文件權(quán)限

Linux 中的每個文件和目錄對所有三種所有者都有以下三種權(quán)限:

文件權(quán)限

  • 讀 - 可以查看或復制文件內(nèi)容;
  • 寫 - 可以修改文件內(nèi)容;
  • 執(zhí)行 - 可以運行文件(如果其可執(zhí)行)。

目錄權(quán)限

  • 讀 - 可以列出所有子文件,并可以從目錄中復制文件;
  • 寫 - 可以在目錄中添加或刪除文件(也需要執(zhí)行權(quán)限);
  • 執(zhí)行 - 可以進入目錄。

Linux 中的文件權(quán)限和所有權(quán)

以上是關(guān)于文件權(quán)限和所有權(quán)的基本知識,現(xiàn)在我們來通過實例介紹下。

在Linux中,你可以使用 stat 或者 ls 命令來查看文件的權(quán)限。如果你使用 ls 命令,那需要帶上 -l 選項,你會看到如下輸出:

-rwxrw-r-- 1 gliu gliu 457 May 10 11:55 filename.txt

對于以上輸出的解釋如下:

  • 文件類型:表示文件的類型,d 表示目錄,– 表示常規(guī)文件,l 表示符號鏈接;
  • 權(quán)限:顯示文件的權(quán)限,我們在本文后面詳細介紹;
  • 硬鏈接數(shù):顯示文件是否有硬鏈接,默認為1;
  • 所有者:文件所屬用戶;
  • 所屬組:有權(quán)訪問此文件的組,一次只能有一個組是文件的所有者;
  • 文件大?。何募拇笮。▎挝粸閎);
  • 修改時間:文件的最后修改時間;
  • 文件名稱:文件或者目錄的名稱。

上述是我們對 ls -l 命令輸出的解釋,現(xiàn)在我們主要看下權(quán)限的部分。

在上面的命令中,你可以看到權(quán)限的顯示為9位字符,格式如下:

rwxrw-r--

其中的每個字母表示一個特定的權(quán)限:

  • r: 讀權(quán)限;
  • w: 寫權(quán)限;
  • x: 執(zhí)行權(quán)限;
  • -: 沒有權(quán)限。

權(quán)限始終按讀、寫和執(zhí)行的順序排列,即rwx。然后,按照用戶、組和其他的順序為所有三種所有者設(shè)置這些權(quán)限。

結(jié)合上圖,我們可以了解到:

1)文件的所有者,具有對該文件的讀取、寫入和執(zhí)行的權(quán)限。但是這個文件的所有者是誰呢?在 ls -l 命令中有此信息的輸出(即用戶 gliu);

2)文件所屬組有對其讀寫權(quán)限,但是沒有執(zhí)行權(quán)限。那是哪一組呢?在 ls -l 命令中有此信息的輸出(即用戶組 gliu);

3)該文件僅對其他人(即有權(quán)訪問系統(tǒng)的所有人)具有讀取權(quán)限。你不需要知道它是哪個,因為“其他”是指所有用戶。

再次看下 ls -l 命令的輸出結(jié)果,我們應該能看出文件的權(quán)限以及所有者了:

-rwxrw-r-- 1 gliu gliu 457 May 10 11:55 filename.txt

文件 filename.txt 屬于用戶 gliu 所有,并且gliu對該文件具有讀寫和執(zhí)行的權(quán)限;用戶組 gliu 中所有的用戶對該文件都具有讀和寫的權(quán)限,然后其他用戶對該文件都是只讀的權(quán)限。

注意:root 用戶具有超級權(quán)限,通常它對所有文件都具有讀、寫和執(zhí)行權(quán)限,即使您在文件權(quán)限中沒有看到它。

單個用戶可以是多個組的成員,但只有主要的組是用戶創(chuàng)建文件的所屬組。用戶所在的主要組可以使用 id 命令找到,比如 id -gn . 如果要查詢自己的主要組,省略參數(shù)。

通過上文的描述我們知道了如何查看文件的權(quán)限,接下來我們看看如何更改文件的權(quán)限和所有權(quán)。

在 Linux 中更改文件權(quán)限

在 Linux 中,我們可以使用 chmod 命令來更改文件的權(quán)限。

注:權(quán)限在過去被稱為訪問模式(mode of access),因此 chmod 是更改訪問模式的簡稱。

使用 chmod 命令有兩種方法:

  • 絕對模式(Absolute mode)
  • 符號模式(Symbolic mode)

在絕對模式下使用 chmod

在絕對模式下,權(quán)限以數(shù)字形式表示(精確地說是八進制)。在這個系統(tǒng)中,每個文件權(quán)限都由一個數(shù)字表示。

  • r (read,讀) = 4
  • w (write,寫) = 2
  • x (execute,執(zhí)行) = 1
  • – (無權(quán)限) = 0

通過這些數(shù)值,可以將它們組合在一起,因此可以使用一個數(shù)字來表示整個權(quán)限集。

數(shù)值

權(quán)限

0

-

1

--x

2

-r-

3(2 + 1)

-wx

4

r--

5( 4 + 1)

r-x

6(4 + 2)

rw-

7(4 +2 + 1)

rwx

上文中的文件 filename.txt,如果使用數(shù)字來表示權(quán)限的話,是什么呢?沒錯,應該是 764。

通過以上描述我們知道了什么數(shù)字代表什么權(quán)限,那么現(xiàn)在我們來看一下如何更改文件權(quán)限。

如果你要更改文件 filename.txt 的權(quán)限,想讓每個人都可以讀寫,但是不能執(zhí)行,那么可以使用如下命令:

chmod 666 filename.txt

然后使用 ls -l 命令查看一下,就會發(fā)現(xiàn)文件的權(quán)限被更改了:

-rw-rw-rw- 1 gliu gliu 457 May 10 11:55 filename.txt

在符號模式下使用chmod

絕對模式的問題是,即使你只想更改一個所有者的權(quán)限,也需要提供三個所有者的數(shù)字。

所以,此時你可以使用 chmod 命令的符號模式。

在符號模式下,所有者用以下符號表示:

  • u = 用戶所有者(user owner)
  • g = 所屬組(group owner)
  • o = 其他(other)
  • a = 所有用戶 (user + group + other)

然后,符號模式使用數(shù)學運算符來執(zhí)行權(quán)限更改:

  • 增加權(quán)限
  • – 移除權(quán)限
  • = 使用新的權(quán)限覆蓋現(xiàn)有權(quán)限

現(xiàn)在,我們來看看如何在符號模式下使用chmod命令。

在前面的例子中,如果要為所屬組(組所有者)添加執(zhí)行權(quán)限,可以這樣使用 chmod 命令:

chmod g+x filename.txt

現(xiàn)在再次使用 ls -l 命令查看文件,會看到已為所屬組添加了執(zhí)行權(quán)限:

-rw-rwxrw- 1 gliu gliu 457 May 10 11:55 filename.txt

另外,還可以將多個權(quán)限的更改合并到一個命令中。假如我們要為其他用戶刪除讀寫權(quán)限,添加執(zhí)行權(quán)限,同時還為所屬組用戶添加執(zhí)行權(quán)限,可以通過如下命令來完成:

chmod o-rw+x,u+x filename.txt

執(zhí)行后結(jié)果如下:

-rwxrwx--x 1 gliu gliu 457 May 10 11:55 filename.txt

如果要同時更改所有三種用戶的權(quán)限,可以按以下方式:

chmod a-x filename.txt

這樣會刪除所有用戶的執(zhí)行權(quán)限:

-rw-rw---- 1 gliu gliu 457 May 10 11:55 filename.txt

更改文件所有權(quán)

要更改文件的所有權(quán),可以使用 chown 命令。它表示 change owner。

可以按如下方式更改文件的所有者:

chown <new_user_name>

如果想要更改用戶和組,可以使用如下命令:

chown <new_user_name>:<new_user_group>

如果只想更改組,那么可以這樣執(zhí)行 chown 命令:

chown :<new_user_group>

或者可以使用專門用戶更改文件和目錄所屬組的 chgrp 命令。這個命令很容易可以猜到表示 change group。

chgrp <new_user_group>

舉個例子,如果我們想要把文件 filename.txt的所有者和組都改為root,可以使用如下命令:

sudo chown root:root filename.txt

這樣就會將文件的用戶所有權(quán),和組所有權(quán),都改為root。

-rw-rw---- 1 root root 457 May 10 11:55 filename.txt

注意到上述命令中使用 sudo 了嗎?這是因為這個命令涉及到了root用戶,要處理root用戶,需要使用超級用戶權(quán)限。

注:同一個文件不能被兩個組所擁有。

文件權(quán)限有優(yōu)先權(quán)嗎?

設(shè)想一種情況,其中用戶所有者沒有任何權(quán)限,組具有讀取權(quán)限,而其他組具有讀取和寫入權(quán)限。

----r--rw- 1 gliu gliu 457 May 10 11:55 filename.txt

那么,如果用戶 gliu 想要使用 cat 或者 less 命令來讀取這個文件,會成功嗎?答案是不會,因為它沒有讀權(quán)限。

但是用戶 gliu 是組 gliu(這個是組名稱) 的一個成員,而該組具有讀取權(quán)限,這應該表示組內(nèi)的每個人(包括用戶gliu)都應該有讀的權(quán)限才對啊?答案是否定的。

在 Linux 中,優(yōu)先級是從用戶,到組,然后再到其他。系統(tǒng)會檢查是誰啟動了進程(在我們的例子中進程是 cat 或者 less),如果啟動進程的用戶同時也是文件的所屬組用戶,那么就會設(shè)置用戶權(quán)限位。

如果啟動進程的不是文件所有者,那么系統(tǒng)就會檢查組,如果啟動進程的用戶恰好在文件所屬組中,那么將設(shè)置組權(quán)限位。

如果啟動進程的用戶不是文件所屬組中的用戶,那么就會設(shè)置其他權(quán)限位。

責任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2011-01-07 09:19:35

Linux文件權(quán)限

2011-01-20 07:50:51

Linux文件系統(tǒng)管理所有權(quán)

2009-11-28 20:21:14

2013-08-16 10:46:20

2024-03-19 14:43:55

Rust編譯所有權(quán)

2024-09-02 10:40:18

2021-07-30 05:12:54

智能指針C++編程語言

2024-01-10 09:26:52

Rust所有權(quán)編程

2017-07-27 13:34:52

Rust所有權(quán)數(shù)據(jù)

2020-09-09 09:19:00

SpringSecurity權(quán)限

2022-03-18 08:00:00

區(qū)塊鏈代幣以太坊

2022-08-11 10:42:58

Rust

2009-09-12 09:46:47

Windows 7所有權(quán)添加

2022-05-30 00:19:13

元宇宙NFTWeb3

2017-10-23 12:42:42

2010-07-20 17:36:55

SQL Server

2018-01-23 11:15:28

云計算數(shù)據(jù)平臺云平臺

2013-06-14 10:34:34

iOS App蘋果iOS開發(fā)者

2021-04-19 12:00:15

Linux命令chmod

2021-01-12 12:07:34

Linux磁盤系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號