1. 程式人生 > >Linux學習筆記(八)文件和目錄權限chmod、更改所有者和所屬組chown、umask、隱藏權限

Linux學習筆記(八)文件和目錄權限chmod、更改所有者和所屬組chown、umask、隱藏權限

筆記 前三 表示 col color 新建 ttr 執行文件 mar

一、chmod

chmod 命令用於修改文件或者文件夾的權限,

之前學習過

ls -l

技術分享圖片
如圖,第一位-之前已經學習過,代指這是一個文本
之後的 rw-r--r--是文件的權限
前三位rw-是文件所有者的權限
中間三位r-- 是文件所屬組的權限
後三位r--是其他用戶的權限
文件的權限有三種:
r(Read,讀取):對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽目錄的權限。
w(Write,寫入):對文件而言,具有新增,修改,刪除文件內容的權限;對目錄來說,具有新建,刪除,修改,移動目錄內文件的權限。
x(eXecute,執行):對文件而言,具有執行文件的權限;對目錄來說該用戶具有進入目錄的權限。
權限擁有權限值,r=4 ,w=2 ,x=1,

上圖中rw-r--r-- 就可以用644表示
將此文件的權限修改為700

chmod 700  /tmp/chen1/123.txt

然後

ls -l /tmp/chen1/

技術分享圖片
可以發現123.txt的權限變成了rwx------
也可以使用

chmod  g+r,o+w /tmp/chen1/123.txt

此時文件權限變為rwxr---w- 即742
技術分享圖片
g就是group用戶組
o就是other其他用戶,
還有個u是指文件所有者,這種方法可以明確的修改文件的權限,比起用權限值修改略麻煩;
接下來修改文件夾的權限
技術分享圖片

ls -ld /tmp/chen1/

文件權限為rwxr-xr-x 755

chmod 700 /tmp/chen1/
ls -l /tmp/chen1/

技術分享圖片
可以發現123.txt文件權限並沒有改變,也就是說chmod命令只是修改了文件夾本身的權限,並沒有修改文件夾內部文件的權限
如果要修改文件夾和文件夾內部文件的權限,則使用下面的命令

chmod -R 741 /tmp/chen1/

可以發現文件夾/tmp/chen1/與文件/tmp/chen1/123.txt的權限都變為了741;

二、chown

change owner 修改文件所屬用戶

cat /etc/passwd

技術分享圖片
可以看到最後兩個是我之前增加的用戶chen1和user1
接著我來修改文件/tmp/chen1/123.txt的用戶

ls -l /tmp/chen1/123.txt

技術分享圖片
可以看到文件的用戶和用戶組都是root
修改所屬用戶

chown chen1 /tmp/chen1/123.txt

技術分享圖片
查看

ls -l /tmp/chen1/123.txt

修改所屬組

chgrp user1 /tmp/chen1/123.txt

查看

ls -l /tmp/chen1/123.txt

也可以使用

chown user1:chen1  /tmp/chen1/123.txt

同時修改用戶組和用戶,用冒號分隔即可,

ls -l /tmp/chen1/123.txt

單獨修改用戶組也可以

chown :user1  /tmp/chen1/123.txt

技術分享圖片

三、umask

umask 用來改變新建文件和新建文件夾的默認權限

文件夾默認所有的權限值777,文件666
技術分享圖片
umask 默認為0022
umask 第一位的0可以先省略
所以新建文件夾默認權限為 777-022 = 755
新建文本默認權限為 666-002=644 ;
如果將umask修改為0003

umask 0003

則新創建的文件夾權限變為 777-003=774
而新建文本權限為 664 而並不是663
這是因為,文本所有權限為664(rw-rw-rw-) 003 (-------wx)
由於664權限中已經沒有x權限,所以現在權限為(rw-rw-rw-)- (-------wx) =(rw-rw-r--)

四、chattr

特殊權限

使用
man chattr 可以查看具體用法

chattr +i /tmp/chen1/123.txt

技術分享圖片
則文件/tmp/chen1/123.txt無法修改、刪除
使用

lsattr /tmp/chen1/123.txt 

可以看到有i權限

chattr -i /tmp/chen1/123.txt 

就可以刪除i權限;

chattr +a /tmp/chen1/123.txt

技術分享圖片
則文件/tmp/chen1/123.txt只可以追加,無法進行刪除等其他操作

chattr -a /tmp/chen1/123.txt  

刪除a權限;
當文件夾擁有i權限或者a權限時,可以修改文件夾內已經存在的文件的內容,但是不可以刪除文件,當擁有a權限時,文件夾內還可以新增文件;

lsattr -R /tmp/chen1/
可以查看文件內所有子文件及文件夾的隱藏權限。

Linux學習筆記(八)文件和目錄權限chmod、更改所有者和所屬組chown、umask、隱藏權限