두 가지 질문이 있지만 서로 밀접하게 관련되어 있습니다.
Linode가 포함된 새 Debian 서버가 있고 이전 서버는 Hostgator를 실행하는 CentOS였습니다. 나는 종종 이 명령을 사용하여 심볼릭 링크를 만듭니다.
ln -s /home/codebase/classes classes
CentOS 서버의 권한은 다음과 같습니다.
lrwxrwxrwx 7 root root 4096 Jan 10 classes
권한은 777이고 소유자:그룹은 루트:루트입니다.
그러나 데비안 서버는 다음과 같이 표시됩니다.
lrwxrwxrwx 7 cpm210 cpm210 4096 Jan 10 classes
이것은 폴더를 생성한 사용자:그룹입니다(어느 쪽이든 루트로 로그인했습니다).
질문 #1, 왜 다른가요? 그리고 데비안 서버의 기본값으로 cpm210:cpm210을 적용해야 합니까?
/var/www/cpm210/public_html
질문 #2: 폴더가 있는데, 여기 에 파일이 가득하고 다른 위치(보통 코드 베이스)에 심볼릭 링크된 몇 개의 폴더가 있다고 가정해 보겠습니다 . 저장소 폴더에는 추가 권한이 있으므로 Apache는 이러한 파일만 읽을 수 있습니다. 이것이 바로 제가 원하는 것입니다. 그러나 파일을 public_html 폴더로 이동하는 과정에서 결국 다음 명령을 실행해야 했습니다.
chown -R cpm210:cpm210 /var/www/cpm210/public_html/*
하지만 저는 심볼릭 링크를 건드리지 않고 파일만 건드리고 싶습니다.
어떻게 해야 하나요?
답변1
설명대로 chown
사용하세요--dereference
chown(1)
. 귀하의 경우에는 다음과 같습니다.
chown --dereference -R cpm210:cpm210 /var/www/cpm210/public_html/
를 사용했기 때문에 끝에 있는 와일드카드도 필요하지 않습니다 -R
.
그런데 그 반대는 --no-dereference
(짧다 -h
)이다.