1. 程式人生 > >linux基礎知識-11

linux基礎知識-11

echo img 文件的權限 linux基礎 其中 cannot 定義 etc 文件的

一、用戶所有者,組所有者,權限

linux中每個文件都有三個屬性,允許用戶控制文件的訪問方式。

技術分享圖片

當建立一個文件時,當前用戶就是這個文件的用戶所有者(也就是說這個文件是哪個用戶建立的),組所有者就是這個用戶的主要組,一般和用戶同名。普通用戶不能更改文件用戶所有者,但可以更改組所有者(比如之前學習的newgrp可以定義主要組)。

文件的權限定義了三個不同極別的用戶如何使用這個文件:

技術分享圖片

二、三種權限

通過上圖我們知道用戶所有者,組所有者,其它人都對文件有著不同的權限設置,其中每組權限分為rwx,被標記 “-” 的表示這組權限中沒有這個權限。比如 rw- 表示沒有x權限。

標記 權限 說明
r 對於文件表示可以讀取文件的內容,對於文件夾表示可以瀏覽目錄中的文件列表
w 對於文件表示可以修改文件的內容,對於文件夾表示可以創建和刪除文件
x 執行 對於文件表示可以執行(類似於windows的exe文件),對於文件夾表示可以進入此文件夾中。

三、三種訪問級別

每個文件都有三組不同的讀,寫,執行權限,分別用於文件所有者(u),組所有者(g)和其它人(o)。

當有人訪問一個文件時,系統會按如下順序訪問:

  1. 當前用戶是文件所有者嗎? 如果是啟用用戶權限。
  2. 當前用戶是組所有者的成員嗎? 如果是啟用組權限。
  3. 如果前面兩者都不是啟用其它權限。

(一)其它人的權限測試

cclove@home:~$ echo "hello" > /tmp/abc.txt
cclove@home:~$ su - linux
密碼:
$ echo "hello" >> /tmp/abc.txt
-su: 1: cannot create /tmp/abc.txt: Permission denied
$ ls -l /tmp/abc.txt
-rw-r--r-- 1 cclove cclove 6 7月  14 18:57 /tmp/abc.txt

我們先用cclove用戶創建文件/tmp/abc.txt,之後切換到linux用戶,追加字符串到/tmp/abc.txt文件中,但發現沒有權限。 之後我們用ls -l查看一下,發現其它人只能讀,不能寫,所以不能修改人家的文件。

(二)共同組成員的權限測試

技術分享圖片

首先我們查看一下abc.txt文件的組所有者權限是讀和寫,這說明只要是cclove組的成員就可以修改abc.txt。 之後我們切換到linux通過id查看一下,發現linux用戶的次要組有cclove,這說明linux在cclove這個組中,對這個文件有修改權限。

這裏要註意一下,老陌通過修改/etc/group文件:

cclove : x : 1000 : linux

把linux放到cclove最後一個字段,表示這個用戶屬於cclove組,如果有多個用戶,用逗號分隔。

(三)符號鏈接文件的權限

技術分享圖片

鏈接文件就是創建的快捷方式,這裏link_abc.txt是abc.txt的快捷方式。我們發現權限是rwxrwxrwx,但實際上它鏈接到abc.txt,所以權限同abc.txt。

四、修改文件權限

chmod ugoa  +-=  rwx  filename
縮寫 說明
u 用戶所有者
g 組所有者
o 其它人
a 以上三組(所有)
+ 增加權限
- 減去權限
= 設置權限
r
w
x 執行

例:

給文件abc.txt 用戶所有者添加x權限,組所有者添加w權限,其它人去掉r權限。

技術分享圖片

五、修改文件的組所有者

之前老陌通過newgrp臨時修改用戶的主要組,之後創建文件則以修改後的組為準,但是如果已經創建文件了就無能為力了。

我們需要用chgrp來修改(change group):

chgrp GROUP file……

此命令的作用是將文件的組所有者改成GROUP,可以一次性修改多個文件。
只有文件的所有者才能更改文件的所屬組,而且這個用戶必須是新組的成員。
技術分享圖片

通過上圖我們來分析一下:

先創建文件file,查看他的組所有者是laomo, 之後查看文件所有者用戶的次要組都有誰,查看之後用chgrp修改file的組所有者為netdev,之後再查看成功。

最後修改file的組所有者為music失敗,因為laomo用戶不是music組成員,所以修改不了。如果非要改可以用管理員賬號改。

六、修改文件的用戶所有者

這個需要管理來操作,普通用戶沒有權限修改。

chown USER file……

將文件的用戶所有者改成USER。

技術分享圖片

通過上圖我們來分析一下:

首先查看文件的用戶所有者是laomo,之後我們用chown修改成me用戶(me是老陌新創建的用戶),註意要以管理員權限修改, 再次查看文件的所有者已經變成了me。

linux基礎知識-11