命令行快速提示:權(quán)限
Fedora 與所有基于 Linux 的系統(tǒng)一樣,它提供了一組強(qiáng)大的安全特性。其中一個(gè)基本特性是文件和文件夾上的權(quán)限。這些權(quán)限保護(hù)文件和文件夾免受未經(jīng)授權(quán)的訪問(wèn)。本文將簡(jiǎn)要介紹這些權(quán)限,并向你展示如何使用它們共享對(duì)文件夾的訪問(wèn)。
權(quán)限基礎(chǔ)
Fedora 本質(zhì)上是一個(gè)多用戶操作系統(tǒng),它也有組,用戶可以是其成員。但是,想象一下一個(gè)沒(méi)有權(quán)限概念的多用戶系統(tǒng),不同的登錄用戶可以隨意閱讀彼此的內(nèi)容。你可以想象到這對(duì)隱私或安全性并不是很好。
Fedora 上的任何文件或文件夾都分配了三組權(quán)限。第一組用于擁有文件或文件夾的用戶,第二組用于擁有它的組,第三組用于其他人,即既不是該文件的用戶也不是擁有該文件的組中的用戶。有時(shí)這被稱為全世界。
權(quán)限意味著什么
每組權(quán)限都有三種形式:讀、寫(xiě)和執(zhí)行。其中每個(gè)都可以用首字母來(lái)代替,即 r
、w
、x
。
文件權(quán)限
對(duì)于文件,權(quán)限的含義如下所示:
- 讀(
r
):可以讀取文件內(nèi)容 - 寫(xiě)(
w
):可以更改文件內(nèi)容 - 執(zhí)行(
x
):可以執(zhí)行文件 —— 這主要用于打算直接運(yùn)行的程序或腳本
當(dāng)你對(duì)任何文件進(jìn)行詳細(xì)信息列表查看時(shí),可以看到這三組權(quán)限。嘗試查看系統(tǒng)上的 /etc/services
文件:
$ ls -l /etc/services
-rw-r--r--. 1 root root 692241 Apr 9 03:47 /etc/services
注意列表左側(cè)的權(quán)限組。如上所述,這些表明三種用戶的權(quán)限:擁有該文件的用戶,擁有該文件的組以及其他人。用戶所有者是 root
,組所有者是 root
組。用戶所有者具有對(duì)文件的讀寫(xiě)權(quán)限,root
組中的任何人都只能讀取該文件。最后,其他任何人也只能讀取該文件。(最左邊的 -
顯示這是一個(gè)常規(guī)文件。)
順便說(shuō)一下,你通常會(huì)在許多(但不是所有)系統(tǒng)配置文件上發(fā)現(xiàn)這組權(quán)限,它們只由系統(tǒng)管理員而不是普通用戶更改。通常,普通用戶需要讀取其內(nèi)容。
文件夾(目錄)權(quán)限
對(duì)于文件夾,權(quán)限的含義略有不同:
- 讀(
r
):可以讀取文件夾內(nèi)容(例如ls
命令) - 寫(xiě)(
w
):可以更改文件夾內(nèi)容(可以在此文件夾中創(chuàng)建或刪除文件) - 執(zhí)行(
x
):可以搜索文件夾,但無(wú)法讀取其內(nèi)容。(這聽(tīng)起來(lái)可能很奇怪,但解釋起來(lái)需要更復(fù)雜的文件系統(tǒng)細(xì)節(jié),這超出了本文的范圍,所以現(xiàn)在就這樣吧。)
看一下 /etc/grub.d
文件夾的例子:
$ ls -ld /etc/grub.d
drwx------. 2 root root 4096 May 23 16:28 /etc/grub.d
注意最左邊的 d
,它顯示這是一個(gè)目錄或文件夾。權(quán)限顯示用戶所有者(root
)可以讀取、更改和 cd
到此文件夾中。但是,沒(méi)有其他人可以這樣做 —— 無(wú)論他們是否是 root
組的成員。注意,你不能 cd
進(jìn)入該文件夾。
$ cd /etc/grub.d
bash: cd: /etc/grub.d: Permission denied
注意你自己的主目錄是如何設(shè)置的:
$ ls -ld $HOME
drwx------. 221 paul paul 28672 Jul 3 14:03 /home/paul
現(xiàn)在,注意除了作為所有者之外,沒(méi)有人可以訪問(wèn)此文件夾中的任何內(nèi)容。這是特意的!你不希望其他人能夠在共享系統(tǒng)上讀取你的私人內(nèi)容。
創(chuàng)建共享文件夾
你可以利用此權(quán)限功能輕松創(chuàng)建一個(gè)文件夾以在組內(nèi)共享。假設(shè)你有一個(gè)名為 finance
的小組,其中有幾個(gè)成員需要共享文檔。因?yàn)檫@些是用戶文檔,所以將它們存儲(chǔ)在 /home
文件夾層次結(jié)構(gòu)中是個(gè)好主意。
首先,使用 sudo 創(chuàng)建一個(gè)共享文件夾,并將其設(shè)置為 finance
組所有:
$ sudo mkdir -p /home/shared/finance
$ sudo chgrp finance /home/shared/finance
默認(rèn)情況下,新文件夾具有這些權(quán)限。注意任何人都可以讀取或搜索它,即使他們無(wú)法創(chuàng)建或刪除其中的文件:
drwxr-xr-x. 2 root root 4096 Jul 6 15:35 finance
對(duì)于金融數(shù)據(jù)來(lái)說(shuō),這似乎不是一個(gè)好主意。接下來(lái),使用 chmod
命令更改共享文件夾的模式(權(quán)限)。注意,使用 g
更改所屬組的權(quán)限,使用 o
更改其他用戶的權(quán)限。同樣,u
會(huì)更改用戶所有者的權(quán)限:
$ sudo chmod g+w,o-rx /home/shared/finance
生成的權(quán)限看起來(lái)更好。現(xiàn)在,finance
組中的任何人(或用戶所有者 root
)都可以完全訪問(wèn)該文件夾及其內(nèi)容:
drwxrwx---. 2 root finance 4096 Jul 6 15:35 finance
如果其他用戶嘗試訪問(wèn)共享文件夾,他們將無(wú)法執(zhí)行此操作。太棒了!現(xiàn)在,我們的金融部門(mén)可以將文檔放在一個(gè)共享的地方。
其他說(shuō)明
還有其他方法可以操作這些權(quán)限。例如,你可能希望將此文件夾中的任何文件設(shè)置為 finance
組所擁有。