Linux-許可權管理(chmod、umask)

twilight0402發表於2017-08-02

版權宣告:本文為博主原創文章,轉載請註明出處。 https://blog.csdn.net/twilight_karl/article/details/76595322

chmod 命令

chmod [選項] 模式 檔名
選項:
– -R 遞迴

模式:
– [ugoa][+-=][rwx] 對指定的使用者增加和刪除許可權
– [mode=421] 用數字表示許可權

  • -u 所有者
  • -g 所屬組
  • -o 其他人
  • -a 所有人
chmod u+x testdata 給所有者新增執行許可權
chmod u-x testdata 刪除所有者的執行許可權
chmod a+x testdata 給所有使用者新增執行許可權
chmod u+x,o+w testdata 不同使用者之間用逗號隔開
chmod u=rwx testdata 賦予所有者rwx
chmod u=rw- testdata 所有者rw-
chmod u=r testdata 所有者r--
chmod u=rw,g=r,o=r testdata 所有者rw-,所有組r--,其他人r--

許可權數字表示:

r–4
w–2
x–1

常用許可權
– 777–rwxrwxrwx
– 755–rwxr-xr-x
– 644–rw-r–r–

chmod 777 testdata

許可權對檔案的作用

  • r:讀取檔案內容(cat more head tail)
  • w:編輯、新增、修改檔案內容(vi echo)
  • x:可執行

有寫許可權並不能刪除檔案,因為檔案的資訊儲存在目錄中,還需要目錄也有相應的許可權。

許可權對目錄的作用

  • r:可以檢視目錄下的檔名(ls)
  • w:具有修改目錄結構的許可權。如新建檔案和目錄,刪除目錄下的檔案和目錄,重新命名此目錄下的檔案和目錄,剪下(touch rm mv cp)
  • x:可以進入目錄(cd)

  • 檔案最高許可權是:x

  • 目錄的最高許可權是:w(5,7)

chmod

* chown 所有者[:|.]所屬組 *

如果需要讓某個使用者具有某個檔案的所有許可權,可以用chown將檔案的所有者改為該使用者,然後給檔案的所有者賦予最高許可權即可。之前的o是對於所有其他使用者賦予的許可權,不安全。

例如,abc檔案的屬性如下,只有root使用者可以修改檔案,如果我現在想讓twilight使用者對這個檔案具有修改許可權。可以把檔案的所有者改為twilight

-rw-r--r--. 1 root root 12 7月  25 09:09 abc

更改檔案所有者,此時twilight使用者已經可以修改檔案內容了

chown twilight abc
// 檢視檔案屬性
[twilight@localhost test]$ ll
總用量 4
-rw-r--r--. 1 twilight root 12 7月  25 09:09 abc

chgrp 將檔案賦予使用者組,用法與chown類似
chgrp 組名 檔名

檔案的預設許可權

umask 檢視預設許可權
umask vlaue 暫時設定umask(root預設是0022)

  • 0 檔案特殊許可權
  • 022 檔案預設許可權

  • 檔案預設不能有執行許可權,必須由手工賦予執行許可權

  • 檔案的預設許可權最大為666
  • 新建檔案的預設許可權,為666減umask值

  • 目錄預設最大許可權為777

  • 建立檔案之後的預設許可權為777減umask值

關於umask的計算方式,網上的說法很多,簡單地說,就是從最大許可權中拿走對應的許可權。如果umask為022,那麼新建一個檔案時

file:  110 110 110
umask: 000 010 010
result:110 100 100

如果umask為033,那麼結果還是644:

file:  110 110 110
umask: 000 011 011
result:110 100 100

永久修改umask 需要修改檔案
– vi /etc/profile


相關文章