使用 Raspbian Buster,我有 2 个用户,root 用户 (pi) 和我设置的用户 (polysense)。我有一个在启动时运行的脚本,该脚本由 root 用户拥有。该脚本的一部分是写入 Polysense 帐户上的文件。但是,当脚本运行时,我收到权限错误。我尝试过:sudo chmod 777 configSite
包含configSite
我需要写入的文件的文件夹也是如此。
当我查看权限时,它没有改变。我在这里做错了什么?我希望看到drwxr-xr-rwx
configSite 内的文件。
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
.
如果您只想设置给定目录中目录的权限,则需要chmod
与find
.首先使用find
找到所有目录,然后chmod
在这些目录上运行:
find directory -type d -exec chmod 777 {} +
搜索-type d
目录。
指示-exec
应对找到的文件名运行命令。
被{}
替换为找到的名称。表示+
在执行之前可以将多个名称替换到命令行中。
您还有一个名为的文件>
,听起来像是脚本中某处的错误...
答案2
您正在更改文件夹的权限,而不是其中文件的权限。相反,尝试
sudo chmod -R 777 configSite/