1. 程式人生 > >Linux| Linux 檔案基本屬性

Linux| Linux 檔案基本屬性

一.Linux 檔案基本屬性

Linux系統是一種典型的多使用者系統,不同的使用者處於不同的地位,擁有不同的許可權。為了保護系統的安全性,Linux系統對不同的使用者訪問同一檔案(包括目錄檔案)的許可權做了不同的規定。

在Linux中我們可以使用ll 或者ls –l(如果要顯示隱藏檔案需要新增引數-a) 命令來顯示一個檔案的屬性以及檔案所屬的使用者和組,如:

[[email protected] /]$ ll 
total 124
lrwxrwxrwx.  1 root root     7 Oct 15  2017 bin -> usr/bin
dr-xr-xr-x.  5
root root 4096 Feb 26 13:54 boot drwxr-xr-x 20 root root 3040 Jul 20 14:27 dev drwxr-xr-x. 83 root root 4096 Aug 16 14:14 etc drwxr-xr-x. 3 root root 4096 Feb 25 21:37 home lrwxrwxrwx. 1 root root 7 Oct 15 2017 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Oct 15 2017 lib64 -> usr/lib64 drwx
------. 2 root root 16384 Oct 15 2017 lost+found drwxr-xr-x. 2 root root 4096 Nov 5 2016 media drwxr-xr-x. 2 root root 4096 Nov 5 2016 mnt drwxr-xr-x. 2 root root 4096 Nov 5 2016 opt dr-xr-xr-x 92 root root 0 Jul 20 14:27 proc dr-xr-x---. 20 root root 61440 Aug 16 14:34 root drwxr-xr-x 22 root root 620
Aug 14 15:45 run lrwxrwxrwx. 1 root root 8 Oct 15 2017 sbin -> usr/sbin drwxr-xr-x. 2 root root 4096 Nov 5 2016 srv dr-xr-xr-x 13 root root 0 Jul 20 22:27 sys drwxrwxrwt. 9 root root 4096 Aug 16 03:44 tmp drwxr-xr-x. 13 root root 4096 Oct 15 2017 usr drwxr-xr-x. 19 root root 4096 Oct 15 2017 var -rw-r--r-- 1 root root 10 Aug 16 14:34 yves.sh drwxr-xr-x 3 root root 4096 Aug 9 16:46 yves.upload

檔案屬性相關例子
lrwxrwxrwx. 1 root root 7 Oct 15 2017 bin -> usr/bin

例項中,bin檔案的第一個屬性用”l”表示。”l”在Linux中代表該檔案是一個連結文件.算上檔案最後面的.總共11位(關於檔案後面的點),在加下來我將一一介紹每個位置的含義.

  • 第0位字元
    第0位確定檔案型別,在Linux中第一個字元代表這個檔案是目錄、檔案或連結檔案等等

    • 當為[ d ]則是目錄
    • 當為[ - ]則是檔案;
    • 若是[ l ]則表示為連結文件(link file);
    • 若是[ b ]則表示為裝置檔案裡面的可供儲存的介面裝置(可隨機存取裝置);
    • 若是[ c ]則表示為裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠(一次性讀取裝置)。
  • 第1到10位字元
    在1到10位以三個為一組,且均為『rwx』 的三個引數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。
    要注意的是,這三個許可權的位置不會改變,如果沒有許可權,就會出現減號[ - ]而已。
    每個檔案的屬性由左邊第一部分的10個字元來確定(如下圖)。
    這裡寫圖片描述

    第1-3位確定屬主(該檔案的所有者)擁有該檔案的許可權
    第4-6位確定屬組(所有者的同組使用者)擁有該檔案的許可權,
    第7-9位確定其他使用者擁有該檔案的許可權。

    第1、4、7位表示讀許可權,如果用”r”字元表示,則有讀許可權,如果用”-“字元表示,則沒有讀許可權;
    第2、5、8位表示寫許可權,如果用”w”字元表示,則有寫許可權,如果用”-“字元表示沒有寫許可權;
    第3、6、9位表示可執行許可權,如果用”x”字元表示,則有執行許可權,如果用”-“字元表示,則沒有執行許可權。


二.Linux檔案屬主和屬組

每個檔案它都有一個特定的所有者,也就是對該檔案具有所有權的使用者。在Linux系統中,使用者是按組分類的,一個使用者屬於一個或多個組。檔案所有者以外的使用者又可以分為檔案所有者的同組使用者和其他使用者。
Linux系統按檔案所有者、檔案所有者同組使用者和其他使用者來規定了不同的檔案訪問許可權

[[email protected] yves]# ll 
total 228496
-rw-rw-r-- 1 yves yves   9417189 Feb  8  2018 apache-tomcat-8.0.50.tar.gz
-rw-rw-r-- 1 yves yves  32941095 Feb 25 21:57 blog-release.gz
-rw-rw-r-- 1 yves yves        93 Aug 16 14:18 dump.rdb
drwxr-xr-x 8 yves yves      4096 Dec 20  2017 jdk1.8.0
-rw-rw-r-- 1 yves yves 189756259 Dec 21  2017 jdk-8u161-linux-x64.tar.gz
drwxrwxr-x 2 yves yves      4096 Aug 16 14:29 permission
drwxrwxr-x 6 yves yves      4096 Aug 16 14:58 redis-2.8.17
-rw-rw-r-- 1 yves yves   1234543 Sep 20  2014 redis-2.8.17.tar.gz
-rw-r--r-- 1 root root    593288 Aug 16 13:56 redis-4.0.10-1.el7.remi.x86_64.rpm
drwxrwxr-x 9 yves yves      4096 Feb 26 14:28 tomcat8

drwxr-xr-x 8 yves yves 4096 Dec 20 2017 jdk1.8.0
在以上例項中,jdk1.8.0檔案是一個目錄檔案,屬主和屬組都為yves,屬主(使用者為yves)有可讀、可寫、可執行的許可權(rwx);與屬主同組(yves組)的其他使用者有可讀和可執行(r-x)的許可權;其他使用者也有可讀和可執行的許可權(r-x)。


1.更改檔案屬組

語法:

chgrp [-R] 屬組名檔名
引數選項

說明:

-R:遞迴更改檔案屬組,就是在更改某個目錄檔案的屬組時,如果加上-R的引數,那麼該目錄下的所有檔案的屬組都會更改。


2.更改檔案屬主 (也可以同時更改檔案屬組)

語法:

chown [–R] 屬主名 檔名
chown [-R] 屬主名:屬組名 檔名


3.更改檔案9個屬性

Linux檔案屬性有兩種設定方法,一種是數字,一種是符號。Linux檔案的基本許可權就有九個,分別是owner/group/others三種身份各有自己的read/write/execute許可權。

  • 數字型別檔案許可權

    檔案的許可權字元為:『-rwxrwxrwx』, 這九個許可權是三個三個一組的!其中,我們可以使用數字來代表各個許可權,各許可權的值對照如下:
    r:4 w:2 x:1,其實就是2的n次冪.

    每種身份(owner/group/others)各自的三個許可權(r/w/x)分數是需要累加的,例如當權限為: [-rwxrwx—] 分數則是:

    owner = rwx = 4+2+1 = 7
    group = rwx = 4+2+1 = 7
    others= --- = 0+0+0 = 0

    語法

     chmod [-R] xyz 檔案或目錄

    說明

    選項與引數:
    
    xyz : 就是剛剛提到的數字型別的許可權屬性,為 rwx 屬性數值的相加。
    -R : 進行遞迴(recursive)的持續變更,亦即連同此目錄下的所有檔案都會變更
  • 符號型別檔案許可權

    從之前的介紹中我們可以發現,基本上就九個許可權分別是(1)user (2)group (3)others三種身份啦!
    那麼我們就可以藉由u, g, o來代表三種身份的許可權!
    此外, a 則代表 all 亦即全部的身份!那麼讀寫的許可權就可以寫成r, w, x!也就是可以使用底下的方式來看:

    chmod u
    g
    o
    a
    +(加入)
    -(除去)
    =(設定)
    r
    w
    x
    檔案或目錄

    如果我們需要將檔案許可權設定為 -rwxr-xr--,可以使用 chmod u=rwx,g=rx,o=r 檔名,效果如下:

    [root@yveshe permission]# ll 
    total 4
    -rwxrwxr-x 1 yves yves 13 Aug 16 14:29 yves.sh
    [root@yveshe permission]# chmod u=rwx,g=rx,o=r yves.sh 
    [root@yveshe permission]# ll 
    total 4
    -rwxr-xr-- 1 yves yves 13 Aug 16 14:29 yves.sh

    新增許可權
    chmod a+w file/dir

    去除許可權
    chmod a-x file/dir

    注意: 如果省去身份不寫,那麼就是all比如下面就是為所有人新增執行許可權chmod +x file,但是如果是寫許可權,只會給所有者新增許可權


三.建議

  • 僅僅只是修改檔案許可權的時候用chmod命令
    比如為yves資料夾下所有的檔案新增執行許可權:chmod -R u+x yves

  • 修改檔案所屬於組時用chown命令
    比如為yves.sh指令碼檔案指定所有者和所屬組chown -R yves:yves yves.sh