
Я использую эту команду:
chown root:www-data /var/www/example.com -R
но я получаю сообщение об ошибке, что каталог не указан.
Что не так?
решение1
Вам нужно поставить этот -R
вариант впереди.
chown -R root:www-data /var/www/example.com
(Я всегда использую точку вместо двоеточия между пользователем и группой, но в руководстве говорится, что следует использовать двоеточие).
решение2
Версия GNU coreutils chown
, которая является стандартной в Ubuntu, принимает опции, размещенные где угодно (если только --
не используется). То есть:
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'
), но все еще поддерживается для обратной совместимости, хотя это и не рекомендуется.