在小白與計算機的平常中,常常會碰到文件無(讀、寫、執行)權限,包括不少剛入門的程序員,也經常在別人的博客裏會看到相似 chmod 777 XX.file
、chmod u+x XX.file
、chmod g-w XX.file
這些不明覺厲的命令,今天來幫還不清楚的童鞋科普一下,電腦中每一個文件的權限 系統到底是如何管理的,又如何修改文件的權限。程序員
先不慌,打開終端,在任意非空目錄下咱們輸入:安全
ls -l
複製代碼
終端會輸出該目錄下全部文件的信息: bash
好,咱們來對每一列是什麼分別介紹:ls -l
發現文件權限格式與Linux稍有不一樣,部分文件權限信息的末尾有」+「或」@「符號:
咱們直接看官方說明:終端輸入man ls
,咱們能夠看到這一段說明:If the file or directory has extended attributes, the permissions
field printed by the -l option is followed by a '@' character.
Otherwise, if the file or directory has extended security
information (such as an access control list), the permissions
field printed by the -l option is followed by a '+' character.
複製代碼
那什麼是「extended security」呢?其實就是擴展安全信息
執行 ls -le
查看extended security: 網絡
0: group:everyone deny delete
,意義就很明顯啦~
那什麼又是「extended attributes」呢?繼續查看「@」的含義,
執行 ls -l@
或xattr -l XX.file
查看擴展屬性: spa
xattr -c XX.file
。
一張圖看懂修改文件權限的命令: 設計
經過按位與的設計巧妙的用三個二進制位表示了三種權限產生的8種組合。chmod a+r XX.file
表示對用戶、組、其餘 所有添加讀取權限。
以上,有任何疑問歡迎留言~code