成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你了解 Linux 文件權限和所有權嗎?

系統 Linux
理解文件所有權和權限對于 Linux 用戶來說至關重要。本文將介紹相關內容。

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

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

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

  • 文件所有權
  • 文件權限

理解文件所有權和權限對于 Linux 用戶來說至關重要。本文將介紹相關內容。

Linux 中的文件所有權

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

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

用戶

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

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

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

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

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

其他

“其他”可以被視為系統中所有用戶的超級組?;旧?,任何能夠訪問該系統的人都屬于這個組。

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

Linux 中的文件權限

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

文件權限

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

目錄權限

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

Linux 中的文件權限和所有權

以上是關于文件權限和所有權的基本知識,現在我們來通過實例介紹下。

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

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

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

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

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

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

rwxrw-r--

其中的每個字母表示一個特定的權限:

  • r: 讀權限;
  • w: 寫權限;
  • x: 執行權限;
  • -: 沒有權限。

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

結合上圖,我們可以了解到:

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

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

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

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

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

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

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

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

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

在 Linux 中更改文件權限

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

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

使用 chmod 命令有兩種方法:

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

在絕對模式下使用 chmod

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

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

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

數值

權限

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,如果使用數字來表示權限的話,是什么呢?沒錯,應該是 764。

通過以上描述我們知道了什么數字代表什么權限,那么現在我們來看一下如何更改文件權限。

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

chmod 666 filename.txt

然后使用 ls -l 命令查看一下,就會發現文件的權限被更改了:

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

在符號模式下使用chmod

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

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

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

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

然后,符號模式使用數學運算符來執行權限更改:

  • 增加權限
  • – 移除權限
  • = 使用新的權限覆蓋現有權限

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

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

chmod g+x filename.txt

現在再次使用 ls -l 命令查看文件,會看到已為所屬組添加了執行權限:

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

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

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

執行后結果如下:

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

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

chmod a-x filename.txt

這樣會刪除所有用戶的執行權限:

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

更改文件所有權

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

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

chown <new_user_name>

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

chown <new_user_name>:<new_user_group>

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

chown :<new_user_group>

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

chgrp <new_user_group>

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

sudo chown root:root filename.txt

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

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

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

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

文件權限有優先權嗎?

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

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

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

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

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

如果啟動進程的不是文件所有者,那么系統就會檢查組,如果啟動進程的用戶恰好在文件所屬組中,那么將設置組權限位。

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

責任編輯:龐桂玉 來源: TIAP
相關推薦

2011-01-07 09:19:35

Linux文件權限

2011-01-20 07:50:51

Linux文件系統管理所有權

2009-11-28 20:21:14

2013-08-16 10:46:20

2024-03-19 14:43:55

Rust編譯所有權

2024-09-02 10:40:18

2021-07-30 05:12:54

智能指針C++編程語言

2024-01-10 09:26:52

Rust所有權編程

2017-07-27 13:34:52

Rust所有權數據

2020-09-09 09:19:00

SpringSecurity權限

2022-03-18 08:00:00

區塊鏈代幣以太坊

2022-08-11 10:42:58

Rust

2009-09-12 09:46:47

Windows 7所有權添加

2022-05-30 00:19:13

元宇宙NFTWeb3

2017-10-23 12:42:42

2021-04-19 12:00:15

Linux命令chmod

2010-07-20 17:36:55

SQL Server

2018-01-23 11:15:28

云計算數據平臺云平臺

2013-06-14 10:34:34

iOS App蘋果iOS開發者

2021-01-12 12:07:34

Linux磁盤系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美日韩在线播放 | 国产精品日韩欧美一区二区 | 欧美 日韩 中文 | 天天操天天舔 | 午夜网 | 最新中文字幕在线 | 爱综合 | 黄a网| 久久久久国产精品一区二区 | 精品91久久| 成人国内精品久久久久一区 | 日本不卡在线观看 | 天天看天天干 | 精国产品一区二区三区 | www狠狠爱com | 久久美女网 | 欧美黄色精品 | 欧美三区在线观看 | 亚洲视频在线播放 | 日韩精品免费视频 | 天天干天天玩天天操 | 日韩精品久久一区二区三区 | 奇米久久| 一区二区三区中文字幕 | 久久精品免费一区二区 | 五月综合激情网 | 精品毛片 | 日本一区二区三区四区 | 亚洲一区二区三区国产 | 黄视频网址 | 久久av一区 | 欧美 日韩 中文 | 色播久久久 | 国产精品毛片一区二区在线看 | 久久免费精品 | 影音先锋久久 | 久久国产精品一区二区三区 | 国产成人免费视频 | 91久久久久 | 99精品国产一区二区青青牛奶 | 羞羞的视频免费观看 |