Linux學習筆記(八)文件和目錄權限chmod、更改所有者和所屬組chown、umask、隱藏權限
chmod 命令用於修改文件或者文件夾的權限,
之前學習過
ls -l
如圖,第一位-之前已經學習過,代指這是一個文本
之後的 rw-r--r--是文件的權限
前三位rw-是文件所有者的權限
中間三位r-- 是文件所屬組的權限
後三位r--是其他用戶的權限
文件的權限有三種:
r(Read,讀取):對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽目錄的權限。
w(Write,寫入):對文件而言,具有新增,修改,刪除文件內容的權限;對目錄來說,具有新建,刪除,修改,移動目錄內文件的權限。
x(eXecute,執行):對文件而言,具有執行文件的權限;對目錄來說該用戶具有進入目錄的權限。
權限擁有權限值,r=4 ,w=2 ,x=1,
將此文件的權限修改為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、隱藏權限