
나는 다음 명령을 사용하고 있습니다 :
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
IMHO: 언젠가는 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'
), 이전 버전과의 호환성을 위해 계속 지원되지만 권장되지는 않습니다.