瞭解許可權
假設有一個我們想要執行的檔案,例如一個名為 add.sh
的 bash 指令碼。但是輸入 ./add.sh
會產生許可權錯誤。獲取許可權是一個簡單的過程。
要確定檔案具有的許可權,請鍵入:
ls -l filename
,或者,在我們的例子中,ls -l ./add.sh
這會將以下內容列印到控制檯:
-r--r--r-- 1 username groupname 0 Jan 4 12:00 add.sh
讓我們停下來理解這意味著什麼。許可權有三種不同型別:所有者,組,其他。不同的許可權適用於每種許可權型別。
還有三個許可權操作,更廣泛地還描述了使用者可以對檔案執行的操作。它們是:(讀:r,寫:w,執行:x)。
所以,回到破折號和 r 的那一串。每個許可權組都有三種潛在的能力。這些組按照 owner-group-others
的順序列出,並且操作為 read-write-execute
。
但等等,這意味著在字串的開頭有一個額外的字元。這實際上是檔案描述符字元。我們可以看到有一個 -
,但其他字元存在像 directories(d)
,sockets(s)
,symbolic link(l)
等。
這給我們留下了基本上這些資訊:a file where owner, group, and others have read permissions. No other permissions granted.
讓我們改變它以允許所有者也編寫和執行該檔案。注意:根據許可權,可能需要將 sudo
新增到此命令。
chmod 744 add.sh
ls -l add.sh
列印出來
-rwxr--r-- 1 username groupname 0 Month time add.sh
現在,檔案的所有者可以通過鍵入來執行該檔案
./add.sh