更改文件夹的权限不起作用

更改文件夹的权限不起作用

使用 Raspbian Buster,我有 2 个用户,root 用户 (pi) 和我设置的用户 (polysense)。我有一个在启动时运行的脚本,该脚本由 root 用户拥有。该脚本的一部分是写入 Polysense 帐户上的文件。但是,当脚本运行时,我收到权限错误。我尝试过:sudo chmod 777 configSite包含configSite我需要写入的文件的文件夹也是如此。

当我查看权限时,它没有改变。我在这里做错了什么?我希望看到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

答案1

然后你运行chmod 777 directory,然后就只剩下该目录的权限了本身被更改,而不是其中包含的文件。

如果您想更改权限全部目录中包含的文件(包括子目录中的文件以及这些子目录本身)使用:

chmod -R 777 directory

调用-R递归模式。

请注意,授予不必要的权限通常是不明智的。常规文件通常不应具有执行权限,因为这些文件可能会意外被调用bash并将(非 shell 命令)内容输入到bash.

如果您只想设置给定目录中目录的权限,则需要chmodfind.首先使用find找到所有目录,然后chmod在这些目录上运行:

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

搜索-type d目录。

指示-exec应对找到的文件名运行命令。

{}替换为找到的名称。表示+在执行之前可以将多个名称替换到命令行中。

您还有一个名为的文件>,听起来像是脚本中某处的错误...

答案2

您正在更改文件夹的权限,而不是其中文件的权限。相反,尝试

sudo chmod -R 777 configSite/

相关内容