1. 程式人生 > >linux檔案與目錄的預設許可權和隱藏許可權。

linux檔案與目錄的預設許可權和隱藏許可權。

touch新建檔案或修改檔案時間

每個檔案在liux下都會記錄許多時間引數,其實有三個主要的變動時間,三個時間的意義有多少:
* modification time(mtmie):
當檔案內容資料改變時,就會更新這個時間,內容資料是指檔案內容,而不是檔案屬性或許可權

  • status time(ctime):
    該檔案狀態改變時,就會更新這個時間,像許可權或屬性改變,就會更新時間

  • access time(atime):
    當檔案內容被讀取時,就會更新這個讀取時間(access)

[root@www ~]# touch [-acdmt]檔案  

選項:

-a:修改access time
-c:僅修改檔案的時間
-d:後面接欲修改的日期不是當前的日期
-m:修改mtime
-t:後面接要修改的時間
 將 ~/.bashrc 複製成為 bashrc,假設複製完全的屬性,檢查其日期
[root@www test]# cp -a ~/.bashrc ./bashrc
[root@www test]# ll bashrc;ll --time=atime bashrc; ll --time=ctime bashrc
-rw-r--r--. 1 suroots suroots 231 8月   3 2016 bashrc =>mtime
-rw-r--r--. 1 suroots suroots 231 10月  6 20:33 bashrc=>atime
-rw-r--r--. 1 suroots suroots 231 10月  9 20:42 bashrc=>ctime
修改案例二的 bashrc 檔案,將日期調整為兩天前
[root@www test]# touch -d "2 days ago" bashrc

[suroots@localhost test]$ touch -d 20170509 bashrc
[suroots@localhost test]$ ll
總用量 4
-rw-r--r--. 1 suroots suroots 231 5月   9 00:00 bashrc
-rwxrwxr-x. 1 suroots suroots   0 10月  9 20:28 

;則是代表連續指令的下達

touch最常用的是情況
* 新建空白檔案
* 修改某個檔案的日期

檔案與目錄的預設許可權與隱藏許可權

除了基本 r, w, x 許可權外,在 Linux 的 Ext2/Ext3 檔案系統下,我們還可以

設定其他的系統隱藏屬性,

這部份可使用 chattr 來設定,而以 lsattr 來檢視,最重要的屬性就是可以設定其不可修改的特性!讓
連檔案的擁有者都不能進行修改!

這個屬性可是相當重要的,尤其是在安全機制上面 (security)!

 
在 /tmp 底下建立一個目目錄,這個目弽名稱為 tu ,並且這個目錄擁有者為
dmtsai, 群組為 users ,此外,任何人都可以進入該目錄瀏覽檔案,不過除了 dmtsai 之外,其他人都不能修改該目目錄下的檔案。
答:
因為除了 dmtsai 之外,其他人不能修改該目錄下的檔案,所以整個目錄的許可權應該是
drwxr-xr-x 才對! 因此你應該這樣做:
建立目錄: mkdir /tmp/tu
修改屬性: chown -R dmtsai:users /tmp/tu
修改許可權: chmod -R 755 /tmp/tu 遞迴給許可權

umask 目前使用者在建立檔案或目錄時候的許可權預設值

# umask
0022 =>與一般許可權有關的是後面三個數字!
# umask -S
u=wrx,g=rx,o=rx

在預設許可權的屬性上,目錄與檔案是不一樣的。 但
是一般檔案的建立則不應該有執行的許可權,因為一般檔案通常是用在於資料的記錄嘛!當然不需要執行
的許可權了。 因此,預設的情況如下:

  • 若使用者建立為『檔案』則預設『沒有可執行( x )許可權』,亦即只有 rw 這兩個專案,也就是最
    大為 666 分,預設許可權如下:
    -rw-rw-rw

  • 若使用者建立為『目錄』,則由於 x 與是否可以進入此目錄有關,因此預設為所有許可權均開放,亦即為 777 分,預謳許可權如下:
    drwxrwxrwx

umask 的分數指的是『該預設值需要減掉的許可權!』因為 r、 w、 x 分別是 4、 2、 1 分,
所以也就是說,當要拿掉能寫的許可權,就是輸入 2 分,而如果要拿掉能讀的許可權,也就是 4 分,
那麼要拿掉讀不寫的許可權,也就是 6 分,而要拿掉執行不寫入的許可權,也就是 3 分,這樣瞭解嗎?

請問你, 5 分是什麼?呵呵! 就是讀不執行癿許可權啦!
比如說,因為 umask 為 022 ,所以 user 並沒有被拿掉任何許可權,不過 group
與others 的許可權被拿掉了 2 (也就是 w 這個許可權),那麼當使用者:

  • 建立檔案時:
    (-rw-rw-rw-) - (—–w–w-) ==> -rw-r–r–
  • 建立目目錄時:
    (drwxrwxrwx) - (d—-w–w-) ==> drwxr-xr-x
[root@www test]#umask 002=>改變預設許可權
- --w
[root@www test]#touch t
[root@www test]# mkdir tt
[root@www test]#ls -l
-rw-rw-r--. 1 suroots suroots  0 10月  9 22:05 t

drwxrwxr-x. 2 suroots suroots   6 10月  9 22:07 tt

假設你的 umask 為 003 ,請問該 umask 情況下,建立檔案和目錄的許可權

#umask 003
- -wx

touch ty

# ls -l
-rw-rw-r–. 1 suroots suroots 0 10月 9 22:19 ty
# mkdir yu
# ls -l
drwxrwxr–. 2 suroots suroots 6 10月 9 22:25 yu

檔案: (-rw-rw-rw-) - (——–wx) = -rw-rw-r–
目錄: (drwxrwxrwx) - (——–wx) = drwxrwxr–

檔案隱藏屬性:
底下的 chattr 命令叧能在 Ext2/Ext3 的

檔案系統上面生效, 其他的檔案系統可能就無法支援這個命令了。
* chattr (配置檔案案隱藏屬性)

[root@www ~]# chattr [+-=][ASacdistu] 檔案或目錄名稱
選項與引數:
+ :增加某一個特殊引數,其他原本存在引數則不動。
- :移除某一個特殊引數,其他原本存在引數則不動。
= :設定一定,且僅有後面接的引數    

A :當設定了 A 這個屬性時,若你有存取此檔案(或目錄)時,他的訪問時間
atime,將不會被修改,可避免 I/O 較慢的機器過度的存取磁碟。這對速度較慢的計
算機有幫助  

S :一般檔案是非同步寫入磁碟的,如果加上 S
這個屬性時,當你進行任何檔案的修改,該更會『同步』寫入磁碟中。  

a :當設定 a 之後,這個檔案將叧只能增加資料,而不能刪除也不能修改資料,叧
有 root才能設定這個屬性

d:當dump程式被執行,設定d屬性將可使該檔案或目錄不被dump備份

i :他可以讓一個檔案『不能被刪除、改名、設定連結也
無法寫入或新增資料!』對於系統安全性有相當大癿幫助!叧有 root 能謳定此屬
性

s :當檔案主設定了 s 屬性時,如果這個檔案被刪除,他將會被完全的移除出這個
硬碟
u:與 s 相反的,當使用 u 來配置檔案時,如果該檔案被刪除了,則資料內容
其實還存在磁碟中,可以救援該檔案

  • lsattr (顯示檔案隱藏屬性)

[root@www test]# lsattr [-adR] 檔案或目錄
選項不引數:
-a :將隱藏檔案的屬性也秀出來;
-d:如果接的是目錄,僅列出目錄本身的屬性而非目錄內的檔名;
-R :連同子目錄的資料也一併列出來;

[root@www test]#mkdir mp
[root@www test]#chattr +aiSA mp
[root@www test]#lsattr -d mp
–S-ia-A——– mp