
Raspbian Busterを使用すると、ルート(pi)と私が設定したユーザー(polysense)という2人のユーザーがいます。 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
シェルコマンドではなくコンテンツをbash
。
chmod
特定のディレクトリ内のディレクトリにのみ権限を設定するには、を使用してこれを行う必要がありますfind
。まずfind
、を使用してすべてのディレクトリを見つけて、chmod
そのディレクトリで実行します。
find directory -type d -exec chmod 777 {} +
-type d
ディレクトリを検索してください。
-exec
見つかったファイル名に対してコマンドを実行する必要があることを示します。
{}
検索された名前に置き換えられます。+
実行前にコマンドラインで複数の名前を置き換えることができることを示します。
というファイルもありますが、>
スクリプトのどこかにバグがあるようです...
答え2
フォルダ内のファイルの権限ではなく、フォルダの権限を変更することです。代わりに試してみてください。
sudo chmod -R 777 configSite/