1. 程式人生 > 實用技巧 >30 Day Challenge Day 21 | Leetcode 340. Longest Substring with At Most K Distinct Characters

30 Day Challenge Day 21 | Leetcode 340. Longest Substring with At Most K Distinct Characters

Linux下的檔案,除了常見的rwx這些許可權外,還有一些特殊的許可權有些時候也會用到,做個瞭解

1、s許可權

  • s許可權對於一個檔案來說,該檔案首先必須是一個可執行檔案,即需要有x許可權,而一般的可執行檔案只有擁有該檔案執行許可權的使用者才可以執行,如果想要別的使用者執行該使用者下的執行檔案,就需要用到s許可權。

  • setuid,該許可權是讓普通使用者可以以root使用者的角色來執行只有root帳號才能執行的程式或者命令,例如"passwd"這個命令,實際上最終更改的是"/etc/shadow"這個檔案,而這個檔案只有root許可權的使用者才能更改,那一般的使用者使用"passwd"這個命令修改自己的密碼時是怎麼實現的呢,可以檢視下"/usr/bin/passwd"這個命令檔案的許可權,設定了setuid位,所以普通使用者能臨時變成root來間接的修改"/etc/shadow"這個檔案以達到修改自己密碼的需求。

  • setgid,該許可權只對目錄有效,目錄被設定該許可權後,任何使用者在此目錄下建立的檔案都具有和該目錄所屬的組相同的組。

2、t許可權

  • sticky bit,可理解成為防刪除的許可權。一個檔案是否可以被某使用者刪除,主要取決於該使用者是否擁有該檔案所在目錄的寫許可權,如果沒有寫許可權,則這個目錄下的所有檔案都不可以被該使用者刪除,但是同時也不能新增檔案。如果希望該使用者可以在此目錄下新增檔案,但是不能刪除檔案,就可以對檔案設定t許可權。(以CentOS7實測下來該許可權的功能便沒有完全實現,rm帶f引數後依舊可以刪除,後續有機會再學習一下)

3、其他特殊許可權

  • i,不可修改許可權,新增之後檔案不可修改;
  • a,只追加許可權,新增之後檔案只能追加,不能刪除。

4、設定許可權方式

  • 與一般許可權類似,這些特殊許可權也是用 chmod 命令來設定,也可是採用八進位制的方式,這裡就不過多表述。

5、t和T,s和S

  • 一個檔案添加了t或s許可權之後,該檔案若本來在該位上有x許可權的,則這些特殊標誌顯示為小寫字母,沒有x許可權的,則顯示為大寫字母。