저는 호스트 환경(OSX)의 폴더가 Ubuntu 게스트를 실행하는 VirtualBox VM에 마운트되는 개발 환경을 구축하고 있습니다.
우리의 경험에 따르면 간단한 VirtualBox 공유 디렉터리는 너무 느리기 때문에 일반적으로 게스트에서 해당 디렉터리를 NFS로 마운트하여 이 작업을 수행합니다. 호스트 환경에서 실시간 편집이 필요합니다.
문제는 chown
및 etc 작업이 chgrp
실패하고 프로덕션 환경에 가까운 항목(예: www-data
Apache에서 사용하는 파일 보유)을 복사해야 한다는 것입니다.
파일 시스템 바인딩유망해 보입니다:
binfs - 변경된 권한으로 로컬 디렉토리를 미러링하거나 덮어씁니다.
그러나 기본 Unix 유틸리티와 시스템 호출을 사용하여 권한을 변경하는 것은 불가능해 보입니다. 상자를 제공하는 기존 구성 관리 시스템(Salt, Puppet)과 통합해야 하기 때문에 이 방식은 나에게 적합하지 않습니다.
권한 측면에서 NFS 마운트를 일반 디렉토리처럼 보이게 만드는 다른 방법이 있습니까? 아니면 디렉토리를 VirtualBox VM에 마운트하는 또 다른 옵션이 있습니까?
편집하다:이것은 설치 결과입니다.
192.168.34.1:/Users/$me/src/states /etc/apps/state type nfs (rw,vers=3,addr=192.168.34.1)
192.168.34.1:/Users/$me/src/apps on /srv/apps type nfs (rw,vers=3,addr=192.168.34.1)
권한 변경이 "실패했습니다"라고 말하면 "작업이 허용되지 않음" 오류가 발생한다는 의미입니다.
예를 들어:
$ ls -l /srv/www
total 8
drwxrwxr-x 4 501 dialout 136 May 31 16:20 default_vhost
drwxrwxr-x 5 501 dialout 170 May 31 16:20 default_vhost_ssl
$ chown root /srv/www/*
chown: changing ownership of `/srv/www/default_vhost': Operation not permitted
chown: changing ownership of `/srv/www/default_vhost_ssl': Operation not permitted
답변1
루트만 사용할 수 있음chown
. NFS 사용 여부에 관계없이 chown
루트로 실행해야 합니다.
기본적으로 NFS는 로컬 루트 사용자를 원격 사용자로 매핑합니다 nobody
. 이로 인해 chown
사용할 수 없게 되며 서버에서 실행해야 합니다. 클라이언트 루트가 NFS 파일 시스템에 대한 루트 권한을 가질 수 있는 경우 이 no_root_squash
옵션을 사용하여 파일 시스템을 내보냅니다. 즉, 서버에는 /etc/exports
다음과 같은 것이 있어야 합니다.
/Users/$me/src/states 192.168.34.2(no_root_squash,async)