
このコマンドを使用しています:
chown root:www-data /var/www/example.com -R
しかし、ディレクトリがリストされていないというエラー メッセージが表示されます。
なにが問題ですか?
答え1
-R
オプションを前に置く必要があります。
chown -R root:www-data /var/www/example.com
(私は常にユーザーとグループの間にコロンの代わりにドットを使用しますが、マニュアル ページではコロンを使用する必要があると書かれています)。
答え2
Ubuntu の標準である のGNU coreutils バージョンは、(が使用されないchown
限り) どこにでも配置できるオプションを受け入れます。つまり、次のようになります。--
chown foo:bar some/location -R
chown -R foo:bar some/location
どちらも機能します。これは、getopt_long()
動作します。私の考えでは、これはバグです。エラーになるか、文書化されるはずですが、私が調べたところ、そうではありません。
chown foo:bar some/location -- -R
という名前のディレクトリを検索します-R
。
ただし、環境変数を設定すると、POSIXLY_CORRECT
という名前のディレクトリが存在しない場合は最初の例は失敗し-R
、再帰的に実行されることはありません。
$ export POSIXLY_CORRECT=
$ chown -v :foo a/ -R
ownership of `a/' retained as foo:foo
chown: cannot access `-R': No such file or directory
私見ですが、POSIX が強制されている別のシステムでそのコマンドを入力すると、動作が壊れてしまうことがあるので、常に POSIX の方法に従うようにしてください。
また、 の値はPOSIXLY_CORRECT
効果がないことに注意してください。これは無効にしません:
export POSIXLY_CORRECT=0
export POSIXLY_CORRECT=no
export POSIXLY_CORRECT=false
export POSIXLY_CORRECT=...
それは必要でしょうunset
。
システムが別のchown
ツール で設定されているか、POSIXLY_CORRECT
設定されている可能性があります。
確認方法:
export | grep POSIX
chown --version
# etc.
ちなみに、.
グループとユーザーを区切るためのドットの使用は、POSIX 2001(info coreutils 'chown invocation'
)ですが、下位互換性のために引き続きサポートされていますが、推奨されません。