vagrant 디렉토리 권한 문제

vagrant 사용중 권한 거부로 파일 read/write 가 거부되는 현상이 발견되었다.

[case1]
아파치 웹서버를 시작시 포크될 httpd 프로세스들의 계정을 다음과 같이 기존 (ysoftman) -> nobody 로 설정하고 코어덤프 디렉토리의 권한은 nbody.nbody 755 로 만들었다.

# 기존
# User ysoftman
# Group ysoftman
User nobody
Group nobody

CoreDumpDirectory /home/ysoftman/apache/bin/core

그리고 아파치 웹 서버의 테스트를 위해 에러 상황을 만들어 코어 파일을 생성하려고 했다.
그런데 코어 파일이생성되지 않는 현상이 발생했다.
계정과 코어덤프 디렉토리 계정을 ysoftman 으로 변경하면 코어 파일이 잘 생성된다.

case1 의 경우는 최신 버전 1.9.3 (March 21, 2017) 설치하니 된다.ㅠㅠ
기존에는 vagrant 를 1.8.4 를 사용하고 있었다.
또는 virtual box 에서 이미지를 삭제 후 다시 생성해 본다.

vagrant 변경 사항 참고
https://github.com/mitchellh/vagrant/blob/master/CHANGELOG.md


[case2]
Vagrantfile 파일의 synced_folder (nobody 소유) 를 다음과 같이 설정한다.
synced_folder 사용 방법
https://www.vagrantup.com/docs/synced-folders/basic_usage.html

config.vm.synced_folder "../to-guest", "/home/ysoftman/from-host", create: true, owner: "nobody", group: "nobody", mount_option: ["dmode=775", fmode="664"]

vagrant 시작 후 ssh 접속하여 해당 synced_folder 를 Symbolic Links 로 구성한다.

ln -s /home/ysoftman/from-host /home/ysoftman/mydata

nobody 계정의 아파치 프로세스가 mydata 를 사용하는데 접근 하지 못하는 문제(permission denied)가 발생했다.

위 synced_folder 사용 문서의 맨마지막 Symbolic Links 에 보면 현재 vagrant 는 symbolic links 에 대해서 아직 제대로 작동하지 않는다고 하니 테스트 후 원하는 동작이 나오지 않으면 synced_folder 를 symbolic links 하지 않고 사용하도록 하자~

** 해결책
링크의 대상 파일 경로의 첫번째 부터 접근 권한을 설정해주면 동작한다.
예를 들어 a 링크가 다음과 같다고 하면
a -> /home/ysoftman/b
/home
/ysoftman
/b
각각의 접근 모드(755)를 변경해주니 permission denied 에러가 발생하지 않았다.

comments:

댓글 쓰기