이 질문은 다음과 매우 유사합니다.Proxmox 5 시스템에서 내보낸 NFS 공유를 마운트하려고 할 때 "mount.nfs: 액세스 거부됨..."을 수정하는 방법은 무엇입니까?.
Proxmox LXC 컨테이너에서 네트워크의 다른 물리적 시스템에 있는 NFS 공유를 마운트하려고 했습니다. 나는 /etc/fstab
다음 줄을 가지고 있습니다 :
192.168.0.4:/mnt/Pool1/homes /home nfs auto,rw,hard 0 0
mount /home
다음 출력과 함께 실행이 실패합니다.
mount.nfs: access denied by server while mounting 192.168.0.4:/mnt/Pool1/homes
출력 mount -v /home
:
mount.nfs: timeout set for Sun Jun 17 15:29:02 2018
mount.nfs: trying text-based options 'hard,vers=4.2,addr=192.168.0.4,clientaddr=192.168.0.166'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 192.168.0.4:/mnt/Pool1/homes
명령 을 실행할 때마다 다음과 같은 mount
줄이 추가됩니다 /var/log/messages
.
Jun 17 15:26:47 userserver-01 kernel: [ 256.620770] audit: type=1400 audit(1529249207.168:19): apparmor="DENIED" operation="mount" info="failed type match" error=-13 profile="lxc-container-default-cgns" name="/home/" pid=2938 comm="mount.nfs" fstype="nfs" srcname="192.168.0.4:/mnt/Pool1/homes"
분명히 Proxmox는 AppArmor를 사용하고 AppArmor는 NFS 마운트 작업을 거부합니다( apparmor="DENIED"
). AppArmor가 프로필을 사용하고 있는 것 같습니다 lxc-container-default-cgns
(로그 파일에 표시됨 profile="lxc-container-default-cgns"
). 에서 구성 파일을 찾았습니다 /etc/apparmor.d/lxc/lxc-default-cgns
.
/etc/apparmor.d/lxc/lxc-default-cgns
NFS를 허용하는 데 필요한 사항을 편집하고 변경할 수 있을 것 같습니다 . 그러나 이렇게 하면 NFS가 허용됩니다.모두컨테이너. NFS를 허용하는 것이 가능합니까?특정 컨테이너에만 사용 가능?
답변1
예, 가능합니다. 을 기반으로 새 프로필을 만들고 lxc-container-default-cgns
특정 컨테이너에 사용하면 됩니다. 그럼 먼저 실행해 보세요
cp -i /etc/apparmor.d/lxc/lxc-default-cgns /etc/apparmor.d/lxc/lxc-default-with-nfs
그런 다음 새 파일을 편집합니다 /etc/apparmor.d/lxc/lxc-default-with-nfs
.
profile lxc-container-default-cgns
다음 으로 교체profile lxc-container-default-with-nfs
}
닫는 괄호( ) 앞에 NFS 구성(아래 참조)을 배치합니다.
NFS 구성
쓰거나
mount fstype=nfs*,
mount fstype=rpc_pipefs,
또는 (더 명확하게)
mount fstype=nfs,
mount fstype=nfs4,
mount fstype=nfsd,
mount fstype=rpc_pipefs,
마지막으로 실행하십시오 systemctl reload apparmor
.
새 구성 파일 사용
다음 줄을 편집 /etc/pve/lxc/${container_id}.conf
하고 추가하세요.
lxc.apparmor.profile: lxc-container-default-with-nfs
그런 다음 컨테이너를 중지하고 다음과 같이 다시 시작합니다.
pct stop ${container_id} && pct start ${container_id}
이제 NFS 공유를 마운트할 수 있습니다.