Raspberry-Pi

更改文件夾的權限不起作用

  • September 23, 2019

使用 Raspbian Buster,我有 2 個使用者,root 使用者 (pi) 和我設置的使用者 (polysense)。我有一個在啟動時執行的腳本,該腳本歸 root 使用者所有。該腳本的一部分是它寫入 polysense 帳戶上的文件。但是,腳本執行時出現權限錯誤。我試過了:包含我需要寫入的文件的文件夾也是如此sudo chmod 777 configSiteconfigSite

當我查看權限時,它不會改變。我在這裡做錯了什麼?我期待看到drwxr-xr-rwxconfigSite 中的文件。

pi@polysensesolutions:~ $ cd /home/polysense/
pi@polysensesolutions:/home/polysense $ sudo chmod 777 configSite
pi@polysensesolutions:/home/polysense $ cd configSite
pi@polysensesolutions:/home/polysense/configSite $ ls -l
total 164
-rw-r--r-- 1 root      root        1985 Sep 17 04:25 '>'
drwxr-xr-x 3 polysense polysense   4096 Sep  2 16:33  configSite
-rw-r--r-- 1 root      root      143360 Sep 17 04:25  db.sqlite3
-rwxr-xr-x 1 polysense polysense    630 Sep  2 15:51  manage.py
drwxr-xr-x 4 polysense polysense   4096 Sep  2 16:34  pages
drwxr-xr-x 2 polysense polysense   4096 Sep 17 04:12  templates
drwxr-xr-x 4 polysense polysense   4096 Sep 17 04:25  wifiApp

然後你執行chmod 777 directory,那麼只有目錄本身的權限被改變,而不是其中包含的文件。

如果要更改目錄中包含的所有文件的權限,包括子目錄中的文件和子目錄本身,請使用:

chmod -R 777 directory

-R呼叫遞歸模式。

請注意,給予比必要更多的權限通常是不明智的。正常文件通常不應該具有執行權限,因為這些文件可能會被意外呼叫bash並將(非 shell 命令)內容輸入bash.

如果只想對給定目錄中的目錄設置權限,則需要chmod結合find. 首先用於find定位所有目錄,然後chmod在這些目錄上執行:

find directory -type d -exec chmod 777 {} +

-type d搜尋目錄。

-exec指示應在找到的文件名上執行命令。

{}替換為找到的名稱。+表示在執行之前可以將多個名稱替換到命令行中。

您還有一個名為的文件>,這聽起來像是腳本中某處的錯誤…

引用自:https://unix.stackexchange.com/questions/543194