1. 程式人生 > >26期20180606 chmod chown umask 隱藏權限

26期20180606 chmod chown umask 隱藏權限

chmod chown umask lsattr chattr

6月6日任務

2.14 文件和目錄權限chmod
2.15 更改所有者和所屬組chown
2.16 umask
2.17 隱藏權限lsattr/chattr


2.14 文件和目錄權限chmod



每個文件都會有屬性,權限,通過ls -l可以看到。

技術分享圖片

d 目錄 rwx------這9位就是權限位。rwx是所有者權限,---是所屬組權限,---是other的權限。後面的3表示和這個目錄有關系的文件有幾個。第一個root是owner 第二個是所屬的組。後面是mtime 以及名字。

rwx分別代表的權限是4 2 1 所以數字來表示權限,比如

7 = 4+2+1 rwx

6 = 4+2 rw-

1 = x

可以通過chmod來更改權限。 chmod = change mode

chmod 權限 文件名/目錄 就可以更改權限。

權限可以使用數字來表示。


drwx------.的最後的點是什麽意思?

表示這個文件受制於SELINUX。如果selinux開啟了,創建的文件都會有點。

說到selinux 它的配置文件地址是 /etc/selinux/config 命令行暫時停止是 setenforce 0。只有從配置文件關閉selinux才可以完全關閉。


如果想遞歸改變一個目錄下的所有文件的屬性的話,需要加選項 -R


chmod -R

技術分享圖片

可以從上圖看到,目錄1的屬性和其目錄下的1.txt的屬性是不一致的。在使用了 chmod -R 後 就遞歸改變了目錄中文件的屬性


除了數字之外還有一種直觀的做法來改變屬性 是要用chmod u=rwx,g=r,o=r file


或者可使用+-來進行表達 比如 chmod a-x file 就是所有的屬性去掉x屬性



2.15 更改所有者和所屬組chown



chown 就是change owner 更改owner

首先看看都有哪些用戶存在。

技術分享圖片

可以將owner改成Bill或者123試試

技術分享圖片


同樣,有chown就有chgrp改變組。具體就不說是怎麽樣操作了和上面一摸一樣。


還有一個用法是 chown 用戶:組 文件/目錄 這樣就可以同時改變用戶和組了

chown :組 這樣不寫用戶名就是只改變組 -R這個選項也生效


overall:

chown username:group filename

chown :group filename

chown -R



umask

創建一個文件是644 創建一個目錄是755 是為什麽呢?

這就設計到umask了

運行umask顯示的是0022

技術分享圖片

umask就是root的umask的默認值

通過這個就可以確定默認文件和目錄的值

如何修改這個值?

umask 0002 這樣就把umask的值改成了0002

技術分享圖片

這個時候創建文件和目錄的權限就變成了 文件:664 目錄是775

文件屬性666-umask

目錄屬性777-umask


實際上應該用數字對應的值來進行計算。當umask=3的時候這種情況就更明顯。

666=(rw-rw-rw-)- 003 =(-------wx) = rw-rw-r-- 664 如果直接數字相減就錯誤了。

777 rwxrwxrwx - -------wx = rwxrwxr-- 774


umask就是來設置默認文件目錄權限的 減法,-減去任何都是空。




隱藏權限lsattr chattr


使用場景是可以隱藏權限以及查看隱藏權限。

相對於 ls -l 隱藏權限之後就看不到了 同時會根據權限來決定是否可以更改等,可以在很大程度上保護文件。

使用的場景就是完全保護,不讓任何人來碰的時候 就使用 chattr +i

chattr命令是設置隱藏權限。不能保護/、/dev、/tmp、/var目錄。lsattr命令是顯示chattr命令設置的文件屬性。

“一些相關的選項權限:


a:即append,設定該參數後,只能向文件中追加/添加數據,而不能刪除,不能改名字,不能改內容,可以更改時間信息。多用於服務器日誌文件安全,只有root才能設定這個屬性。
c:即compresse,設定文件是否經壓縮後再存儲。讀取時需要經過自動解壓操作。
d:即no dump,設定文件不能成為dump程序的備份目標。
i:設定文件不能被刪除、改名、設定鏈接關系,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助。

技術分享圖片

技術分享圖片

可以發現有一個i權限,這個i權限什麽都不能做,連名字都改不了。vi是使用的時候,會產生一個臨時文件,實際的修改都是在臨時文件上,保存退出的時候,臨時文件會覆蓋原文件。

技術分享圖片

有了i就什麽都動不了了,所以如果想修改的話,使用chattr -i 就是將i移除,這個就可以修改了。

技術分享圖片


head -n2 file1 >>file2

是把文件1前兩行追加到文件2 > 是寫進去,替換掉


lsattr可以查看目錄本身的 -d 如果不加選項則是查找目錄下的子目錄以及子文件的權限

chattr 也可以給目錄加權限 +i (啥都不可以) 也可以加a(追加)權限,這樣就可以在目錄下新建文件了



lsattr 還有一個選項 -R 可以查看子目錄以及子目錄下的文件權限 -R 遞歸


總結

chattr +i +a -i -a

lsattr -R -a(隱藏可以看出來) -d 查看目錄




26期20180606 chmod chown umask 隱藏權限