我是Linux新手。我正在用umask命令進行一些試驗。我將umask設置爲001,但是當我創建一個文件並顯示一個長列表時,新文件不顯示允許執行權限。我想知道爲什麼?爲什麼umask 001不設置執行權限?
回答
umask是有點特殊。設置一點意味着你實際上禁用了權限。它的實現是:
(not umask) & filemode
文件模式是用戶想要創建的。
所以你禁止執行位:
001 -> complement -> 110 -> rw-
你想嘗試的面具是110(位)或006(八進制):)
的umask的告訴哪些位從刪除系統在creat()
調用給出的模式位掩碼。 umask通常表示爲八進制數字,每個數字由3位組成(r
= 4,w
= 2,x
= 1)。三個八進制數字表示「用戶」,「組」,「其他」。
它是由程序如果它調用creat
與模式666
爲rw-
或777
爲rwx
。在這種情況下,顯然使用666
。 (A文件與666
,除非它被認爲是正常的可執行創建。在這種情況下,使用777
。此計算例如用於編譯器。)
一個非常常見的是umask
022
(八進制)。它變成666
(rw-rw-rw-
)變成644
(rw-r--r--
)和777
(rwxrwxrwx
)變成755
(rwxr-xr-x
)它們分別是最終應用於文件的文件模式。
您的umask 001
只會關閉「其他」組的x
位。因此777
將變成776
(rwxrwxrw-
)和666
停留666
(rw-rw-rw-
)。
謝謝glglgl ....但是,什麼面具可以讓我獲得rwxrwxrw許可的文件?我明白這將是001(八進制) –
@JCNunez只有當創建該文件的程序通過請求模式「0777」支持此操作時。否則,你會用手做。 'python -c'import os,sys; os.close(os.open(sys.argv [1],os.O_CREAT,0777))'123123123'會爲您創建所有模式位設置的文件'123123123'。 umask然後掩蓋它們,你會看到會發生什麼。 – glglgl
可能是系統管理員設置了一個umask異常,以便默認情況下不允許執行權限發生。請參閱本文的詳細信息: http://boulderapps.co/on-create-a-new-file-why-are-the-execute-permissions-not-set-to-my-umask
- 1. 爲什麼umask結果不同於權限位
- 2. 什麼是file_put_contents設置爲權限?
- 3. 爲什麼運行python文件不需要執行權限?
- 4. 爲什麼/etc/login.defs中的UMASK設置不符合?
- 5. 清除緩存時使用umask設置權限
- 6. umask額外的權限,如目錄上的設置組ID id
- 7. 爲什麼我不能設置PostgreSQL全新安裝的權限
- 8. 你爲什麼要使用umask?
- 9. 權限執行
- 10. Symfony2的:我還是不能設置緩存/目錄的權限(setfacl的,的umask)
- 11. 爲什麼MAMP設置爲600 MySQL文件權限?
- 12. bash的權限設置爲777,但文件執行仍否認
- 13. 應該爲目錄設置什麼權限才能避免權限被拒絕?
- 14. ANT設置ACL權限
- 15. 爲什麼PHP需要「執行」權限才能寫入文件?
- 16. 爲什麼使用GRANT ALL拒絕執行權限?
- 17. CHMOD VS UMASK - Linux文件權限
- 18. 設置權限
- 19. 我應該爲上傳文件設置什麼文件權限
- 20. 爲什麼SVN會破壞我的權限設置?
- 21. 不能設置facebook權限
- 22. 爲什麼「\ 001」===「\ u0001」在JavaScript中爲true?
- 23. 執行設備權限後的alertView iOS
- 24. 使用automake設置可執行文件的權限
- 25. 通過tomcat.service設置爲tomcat8的umask
- 26. GoogleAccountCredential getSelectedAccountName()在設置並執行權限後返回空值
- 27. 爲什麼你不需要在類路徑中的jar中執行權限
- 28. Nginx/php-fpm umask設置
- 29. 爲什麼不執行DispatchQueue.main.async?
- 30. 爲什麼不執行.vimrc?
但他對「他人」的一部分這樣做只是... – glglgl
這個umask的*已經*八進制給出... – glglgl
@glglgl這是事實,這是由於無論是創建文件。 Umask可以處理所需的文件權限。但他也不瞭解umask背後的邏輯。 –