1.關於所有者、群組和其他人
在Linux系統中,每個文件都具有User、Group和Others三種身份的權限配置。那這三種身份分別表示什么意思呢?配置這三種身份的權限有啥意義呢?
(1)文件所有者(User)
由於Linux系統支持多人多任務,因此常常存在多個用戶同時使用一個Linux系統的情況。那么,如何確認每個用戶私密文件的訪問控制呢?這就是文件所有者存在的原因。
Linux系統為每個用戶提供一個用戶主目錄,用戶的主目錄為/home/<username>。例如,下圖的/home/lienhua34是我的主目錄,該目錄下只有我能夠添加文件和刪除文件,其他人可以瀏覽,但是能不能查看我的文件內容就依具體的文件權限了。
每個Linux用戶創建的文件的所有者都是自己。如果我有一個私密的文件,我當然不希望別人能夠看到,於是我就這個文件放到我的主目錄下,然后將文件的權限設置成只有文件所有者(即我自己)能夠查看和修改。就算其他用戶知道我有這個文件,但他還是不能查看、修改和刪除。
(2)群組(Group)
試想這樣子一個場景:你在一個團隊中,團隊中的每個成員都在同一台Linux機器上進行工作,該Linux機器的某個目錄下存放你們團隊的工作文檔,團隊中的每個成員都應該對這份文件具有查看和修改操作,同時又不希望這台機器上該團隊之外的用戶具有訪問權限,那我們如何實現這種權限控制呢?這就需要用到群組的概念。
我們可以在Linux系統中為該團隊建立一個群組,將該團隊的所有成員添加到該群組中。然后將屬於這個團隊的文件所屬群組設置為該群組,然后將文件的群組權限設置為可讀寫,於是該群組所有成員便都可以查看和修改,而不屬於該群組的用戶便沒有這個權限。
(3)其他人(Others)
不屬於文件所有者或文件所屬群組成員的用戶,便都是其他人。
當然,有個比較特殊的超級用戶,即root。該用戶可以訪問Linux機器上的所有文件。
更詳細的介紹可以參考鳥哥Linux私房菜:使用者和群組
2.修改所有者和群組
我們通過ls -l可以查看文件的屬性,如下圖所示,
其中,第3和第4列分別表示文件的所有者(lienhua34)和所屬群組(lienhua34)。我們可以通過chown和chgrp分別來修改文件的所有者和所屬群組。
(1)修改文件所屬群組chgrp
chgrp即為change group的縮寫。命令chgrp的用法如下,
chgrp [-R] GROUP FILE
要修改的群組名GROUP必須是一個已存在的群組,其中-R選項是否遞歸修改目錄下的所有文件和子目錄的所屬群組。例如,下面修改了文件filea的所屬群組為root,
lienhua34@test$ sudo chgrp root filea [sudo] password for lienhua34: lienhua34@test$ ls -l total 4 -rw-r--r-- 1 lienhua34 root 0 Dec 12 18:38 filea drwxr-xr-x 2 lienhua34 lienhua34 4096 Dec 12 18:38 subdir lienhua34@test$
(2)修改文件所有者chown
chown即為change owner的縮寫。命令chown的簡單用法如下所示,
chown [-R] OWNER[:[GROUP]] FILE
命令chown除了能夠修改文件所有者,也能夠同時修改文件的所屬群組(通過在所有者后面緊着冒號(:)和群組名)。
樣例:
將文件filea的所有者修改為root,
lienhua34@test$ sudo chown root filea lienhua34@test$ ls -l total 4 -rw-r--r-- 1 root root 0 Dec 12 18:38 filea drwxr-xr-x 2 lienhua34 lienhua34 4096 Dec 12 18:38 subdir
同時將文件filea的所有者修改為lienhua34以及所屬群組修改為lienhua34,
lienhua34@test$ sudo chown lienhua34:lienhua34 filea lienhua34@test$ ls -l total 4 -rw-r--r-- 1 lienhua34 lienhua34 0 Dec 12 18:38 filea drwxr-xr-x 2 lienhua34 lienhua34 4096 Dec 12 18:38 subdir
(done)
