文件和目錄權限chmod 更改全部者和所屬組chown umask 隱藏權限lsattr_chattr

2.14 文件和目錄權限chmod

chmod命令用來變動文件或目錄的權限。在UNIX系統家族裏,文件或目錄權限的控制分別以讀取、寫入、執行3種通常權限來區分,另有3種特殊權限可供運用。用戶可使用chmod指令去變動文件與目錄的權限,設置方式採用文字或數字代號皆可。符號鏈接的權限沒法變動,若是用戶對符號鏈接修改權限,其改變會做用在被鏈接的原始文件。linux

權限範圍的表示法以下:vim

u User,即文件或目錄的擁有者;ui

g Group,即文件或目錄的所屬羣組;spa

o Other,除了文件或目錄擁有者或所屬羣組以外,其餘用戶皆屬於這個範圍;.net

a All,即所有的用戶,包含擁有者,所屬羣組以及其餘用戶;遞歸

r 讀取權限,數字代號爲「4」;get

w 寫入權限,數字代號爲「2」;class

x 執行或切換權限,數字代號爲「1」;擴展

- 不具任何權限,數字代號爲「0」;file

s 特殊功能說明:變動文件或目錄的權限。

選項:

-f 不顯示錯誤信息

-R 遞歸處理,將指令目錄下的全部文件以及子目錄一併處理

-v 顯示指令執行過程

<權限範圍>+<權限設置>:開啓權限範圍的文件或目錄的該選項權限設置;

chmod a/u/g/o +r/w/x

<權限範圍>-<權限設置>:關閉權限範圍的文件或目錄的該選項權限設置;

chmod a/u/g/o - r/w/x

<權限範圍>=<權限設置>:指定權限範圍的文件或目錄的該選項權限設置;

chmod a/u/g/o=rwx/rw/rx/r/...

參數:

權限模式:指定文件的權限模式;

文件:要改變權限的文件。

知識擴展和實例

Linux用 戶分爲:擁有者、組羣(Group)、其餘(other),Linux系統中,預設的情況下,系統中全部的賬號與通常身份使用者,以及root的相關信 息, 都是記錄在/etc/passwd文件中。每一個人的密碼則是記錄在/etc/shadow文件下。 此外,全部的組羣名稱記錄在/etc/group內!

linux文件的用戶權限的分析圖:

例:rwx rw- r--

r=讀取屬性  //值=4

w=寫入屬性  //值=2

x=執行屬性  //值=1

chmod u+x,g+w f01  //爲文件f01設置本身能夠執行,組員能夠寫入的權限

chmod u=rwx,g=rw,o=r f01

chmod 764 f01

chmod a+x f01  //對文件f01的u,g,o都設置可執行屬性

文件的權限根據用戶分爲:全部者,屬組,其餘。ls -l查看文件的詳細信息時,第一列第一個字符表示文件類型,後面9個字符每三位一組表示權限。最後的.(點)表示受制於selinux,selinux開啓時全部建立的文件都會有.在/etc/selinux/config中關閉selinux重啓後建立的文件不會有.(點)

rwxrwxrwx 777

rwxr-xr-x 755

rw-r--r-- 644

chmod 777 =chmod u=rwx,g=rwx,o=rwx =chmod a=rwx

chmod 755 = chmod u=rwx,g=rx,o=rx

chmod 644 = chmod u=rw,g=r,o=r

chmod操做只針對文件或目錄自己,chmod -R 目錄下的文件以及子目錄批量更改此權限

2.15 更改全部者和所屬組chown

chown修改文件或目錄的全部者,屬組。用戶能夠是用戶名或用戶id;屬組能夠是組名或組id;目標文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員常用chown命令,在將文件拷貝到另外一個用戶的目錄下以後,讓用戶擁有使用該文件的權限。普通用戶不能將本身的文件改變成其餘的全部者,其操做權限通常爲管理員。

1.命令格式:

    chown [選項]... [全部者][:[組]] 文件...

2.選項:

-R 目錄下的文件以及子目錄都修改

-v 顯示詳細的處理信息

--reference=<目錄或文件> 按指定的目錄或文件做爲參考,把目標目錄或文件的全部者,屬組設置成和參考

文件或目錄相同。

--from=<當前用戶:當前羣組> 只有當前用戶和羣組跟指定的用戶和羣組相同時才進行改變

3.使用實例:

1.更改/tmp/file文件的全部者爲gavin

[root@localhost ~]# ll /tmp/file

-rw-r--r--. 1 root root 0 6月 27 19:01 /tmp/file

[root@localhost ~]# chown gavin /tmp/file

[root@localhost ~]# ll /tmp/file

-rw-r--r--. 1 gavin root 0 6月 27 19:01 /tmp/file

2.更改/tmp/file文件的屬組爲gavin

chown :gavin /tmp/file

3.更改/tmp/gavin目錄的全部者,屬組爲gavin

chown gavin:gavin /tmp/gavin

4.更改/tmp/gavin目錄的全部者,屬組與/tmp/zhang目錄相同

chown --reference=/tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 2 root root 6 6月 27 19:09 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

[root@localhost ~]# chown --reference=/tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 2 zhang zhang 6 6月 27 19:09 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

5.更改/tmp/gavin目錄的全部者,屬組都爲gavin,而且目錄下的子文件,子目錄也修改

chown -R gavin:gavin /tmp/gavin

6.當全部者和屬組爲gavin:gavin時纔會修改

chown --from=gavin:gavin root:root /tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 3 gavin gavin 29 6月 27 19:12 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

[root@localhost ~]# chown --from=gavin:gavin root:root /tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 3 root root 29 6月 27 19:12 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

chgrp命令修改文件或目錄的屬組:

chgrp gavin /tmp/gavin 把/tmp/gavin的屬組改爲gavin

chgrp -R gavin /tmp/gavin 把/tmp/gavin目錄以及下面的文件,子目錄的屬組都改爲gavin

2.16 umask

umask通常是用在初始建立一個目錄或者文件的時候賦予他們的權限。

這裏要說明兩點:

  一、針對目錄來講x權限表明能夠進入該目錄,因此說對於這個權限初始賦值是沒什麼問題的;

  二、針對文件的x的權限表明執行,這個風險過高,因此通常權限初始賦值必須去掉x的;

查看當前umask值:

[root@localhost ~]# umask

0022

上面四個數字表明是賦值初始化準備丟棄的權限。(相對應文件來講,x權限就算沒說明出來丟棄同樣必須默認丟棄)

目錄:rwxrwxrwx 減相對應的值

文件:rw-rw-rw- 減相對應的值,(-減r或w或x仍然是-)

  第一個0表明suid 丟棄的權限;

  第二個0表明本文件/目錄擁有者什麼權限都沒丟棄(若是是文件,x權限除外,爲何看看上面解釋);

  第三個2表明本文件/目錄的用戶組丟棄了w權限(若是是文件那麼它的x權限也丟棄);

  第三個2表明本文件/目錄的其餘用戶能使用的權限只有有r和x(文件除外)。

  綜合上面所說若是你新建立一個文件那麼它的權限是:-wr-w--w-- 便是:644

  若是你新建立一個目錄的話那麼它的權限是:dwrxw-xw-x 便是:755

注:不要用目錄777或者文件666減對應的umask值,由於當umask=0003時,666-003=663這樣是不對的,應該是rw-rw-rw- 減 -------wx 等於rw-rw-r-- =664

  若是你要修改unask的值直接:

  [root@www ~]# umask 002 >>>只在當前終端下生效

2.17 隱藏權限lsattr_chattr

有時候你發現用root權限都不能修改某個文件,大部分緣由是曾經用chattr命令鎖定該文件了。chattr命令的做用很大,其中一些功能是由Linux內核版原本支持的,lsattr命令是顯示chattr命令設置的文件屬性。

lsattr經常使用選項:

lsattr -R 查看目錄以及目錄下文件是否存在隱藏權限

lsattr -d 查看目錄自己

lsattr -a 查看所有文件或目錄包括隱藏的。

chattr經常使用選項:

chattr +i >>>增長隱藏i權限

chattr -i >>>取消隱藏i權限

chattr +a >>>增長隱藏a權限

chattr -a >>>取消隱藏a權限

i權限:

做用在文件:文件不能刪除,不能移動,不能重命名,不能touch修改時間屬性,不能修改內容。不能設定

硬連接,能夠建立軟連接。

做用在目錄:不能(刪除,移動,重命名,touch修改時間)此目錄,能夠給此目錄建立軟連接。目錄下的子文

件,子目錄不能刪除,不能移動,不能重命名,能夠touch修改時間屬性,能夠修改已存在文件

的內容,能夠給文件建立軟連接和硬連接。

a權限:

做用在文件:文件不能移動,不能刪除,不能重命名,不能vim直接編輯修改,不能建立硬連接;能夠touch

修改時間屬性,能夠>>追加內容,能夠建立軟連接。

做用在目錄:目錄自己不能刪除移動重命名,能夠建立軟連接,能夠touch修改目錄時間;目錄下的文件以及

子目錄不能移動刪除重命名,能夠建立目錄與文件,能夠修改文件內容,能夠touch,能夠創

建軟連接和硬連接

相關文章
相關標籤/搜索