1. 程式人生 > 實用技巧 >關於Linux中的許可權

關於Linux中的許可權

關於Linux中的許可權

簡單介紹

  1. 一般包括 讀 寫 執行,對應字母為 r,w,x;分別對應了數字 4 2 1
  2. Linux下檔案的顆粒度分為 擁有者,群組,其它組。每個檔案可以針對這三個顆粒度設定不同的許可權,一般來說,一個檔案只屬於一個使用者和一個組,其他使用者想有這個檔案的許可權,可以加入相應的群組。
  3. 用chmod對許可權進行修改

具體分析

檔案屬性

在目錄下執行命令ls -al可以得到以下結果

[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]

[許可權] [連結] [擁有者] [群組] [檔案容量] [修改日期] [檔名]

第一欄第一個字母代表的是這個檔案的型別和許可權

  • [d] 目錄
  • [-]檔案
  • [l]連結檔
  • [b]可隨即存取裝置
  • [c]串列埠裝置

我也搞不清最後三個什麼意思

接下來的字元三個一組,每組都是rwx的組合,三組分別 **檔案擁有者 群組 其它群組 **的許可權

注意 rwx 這三個字母的順序不會改變,如果沒有許可權,那麼就是減號[-]

修改檔案許可權和屬性

  • chgrp: 改變檔案所屬群組 被修改的組名要在 /etc/group 存在
  • chown:改變檔案擁有者 擁有者要在 /etc/passwd 檔案中存在
  • chmod: 改變檔案的許可權,SUID,SGID,SBIT等等

範例:

[root@www ~]# chgrp [-R] dirname/filename ...
選項與引數:
-R : 進行遞迴(recursive)的持續變更,亦即連同次目錄下的所有檔案、目錄
     都更新成為這個群組之意。常常用在變更某一目錄內所有的檔案之情況。
範例:
[root@www ~]# chgrp users install.log
[root@www ~]# ls -l
-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
[root@www ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 發生錯誤訊息囉~找不到這個群組名~


[root@www ~]# chown [-R] 賬號名稱 檔案或目錄
[root@www ~]# chown [-R] 賬號名稱:組名 檔案或目錄
選項與引數:
-R : 進行遞迴(recursive)的持續變更,亦即連同次目錄下的所有檔案都變更

範例:將install.log的擁有者改為bin這個賬號:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

範例:將install.log的擁有者與群組改回為root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

改變許可權chmod

可以通過數字或者符號來改變許可權

  • 數字:

    ​ r :4

    ​ w:2

    ​ x:1

    每種身份的許可權要累加起來如:rwx = 4+2+1 = 7

    那麼如果要開啟所有許可權,則要 chmod 777 xxxx 有時後vim編輯一個shell檔案後其許可權通常是 -rw-rw-r-- 也就是664, 如果要將該檔案變成可執行檔案,並且不要讓其他人修改此一檔案的話, 那麼就需要-rwxr-xr-x這樣的許可權,此時就得要下達:chmod 755 test.sh 的指令

  • 符號:

    用 u g o 來表示 三種身份(user group others)此外 a表示all

    可以用下面的方法

    例如:

    [root@www ~]# ls -al .bashrc
    -rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
    [root@www ~]# chmod  a+w  .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc
    
    
    [root@www ~]# chmod  u=rwx,go=rx  .bashrc
    # 注意喔!那個 u=rwx,go=rx 是連在一起的,中間並沒有任何空格!
    [root@www ~]# ls -al .bashrc
    -rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
    

關於許可權的更多介紹可以參考《鳥哥的Linux私房菜》