NFS를 다음과 같이 설정했습니다.이 영상은 Jay(Linux Guy)가 제작한 영상입니다.autofs를 설정할 때까지.
제 경우에는 서버(192.168.1.99)가 Proxmox 8(Debian 기반)을 실행하고 노트북(192.168.1.8)이 Ubuntu 22.04를 실행하고 있습니다.
노트북에 공유 폴더를 설치한 후 파일을 쓰려고 하면 다음 오류가 발생합니다.
$ echo 'from laptop' >> /mnt/nfs/local/message.txt
bash: /mnt/nfs/local/message.txt: Permission denied
이것은 /etc/exports
서버에 있는 내 파일입니다.
/srv/local 192.168.0.0/255.255.254.0(rw,no_subtree_check)
다음 명령을 사용하여 랩탑에 폴더를 마운트했습니다.
$ sudo mount 192.168.1.99:/srv/local /mnt/nfs/local
이 오류를 어떻게 해결할 수 있는지 아시는 분 계신가요? 누구든지 이 공유 폴더에 글을 쓸 수 있기를 바랍니다.
답변1
이것은 주석이어야 하는데, 조금 깁니다.
사용 중인 도구를 이해하지 않고도 일부 기능 구성을 시작할 수 있습니다. 하지만 실제로 도구를 사용하는 것이 배우는 가장 좋은 방법입니다. 하지만 항상 먼저 조금 읽어 보는 것이 좋습니다. 인터넷에는 Unix/Linux 권한에 대한 소개 기사가 많이 있습니다. 예를 들어https://mason.gmu.edu/~montecin/UNIXpermiss.htm
클라이언트 파일 시스템에 대한 권한은 마운트 지점에 따라 다르며 그 다음에는 서버에 대한 권한이 적용됩니다. 권한(예: -rwx-rxr--)은 /etc/passwd를 통해 사용자 이름에 매핑되는 사용자 ID 및 그룹 ID(둘 다 숫자)와 연결됩니다. NFS 클라이언트와 NFS 서버는 각각의 /etc/passwd 파일에서 서로 다른 매핑을 가질 수 있습니다. NFSv4에는 이 문제를 해결하는 메커니즘이 있습니다(구성한 경우).
의견에서 당신은 all_squash를 사용하라고 제안하는 것 같습니다. 그러나 이는 /etc/exports에서 참조하는 줄에는 표시되지 않습니다.
압축 옵션을 사용하면 NFS 마운트 경계에 걸쳐 사용자 ID를 간단하게 매핑할 수 있습니다.
/mnt/nfs/local/message.txt: 권한이 거부되었습니다.
이 파일에 쓰려면 UID에 다음이 필요합니다.
- /mnt, /mnt/nfs에 대한 읽기 및 실행 권한
- /mnt/nfs/local에 대한 읽기, 쓰기 및 실행 권한
- /mnt/nfs/local/message.txt에 대한 쓰기 권한(이미 존재하는 경우)
(그리고 NFS 파일 시스템은 읽기/쓰기로 마운트되어야 합니다. 기본값인 rw를 사용하여 마운트하더라도 특정 오류 조건에서는 RO로 되돌아갈 수 있습니다.)
@Jaromanda /srv/local의 소유자/그룹 및 권한을 요청합니다. 귀하의 대답은 소유자가 루트이고 그룹이 루트라는 것입니다. 그러나 권한이 무엇인지는 언급하지 않았습니다. 계층 구조에 있는 각 노드의 소유자, 그룹 및 권한을 확인해야 합니다.
답변2
제 경우에는 공유 폴더( )에 대한 다른 사람의 권한이 문제였습니다 /srv/nfs/local
.
어떤 이유에서인지 Jay의 동영상에서는 이것이 문제가 되지 않습니다. 아마도 그는 Ubuntu와 Ubuntu Server를 사용하고 나는 Ubuntu와 Proxmox(Debian 기반)를 사용하기 때문일 것입니다.
내 문제를 해결하기 위해 나는 의존해야 했습니다.전방십자인대.
acl
먼저 내 서버(Proxmox 8)에 설치 해야 했습니다 .
apt install acl
그런 다음 다음 명령을 실행했습니다(여전히 서버에 있음).
setfacl -PRdm o::rw /srv/local
이 명령에 사용된 각 매개변수를 읽을 수 있습니다.여기.
/srv/local
이 명령은 폴더의 사용자 및 그룹과 다른 다른 사용자가 읽고 쓸 수 있도록 기본 공유를 변경합니다 .
내 노트북 사용자는다른Proxmox 시스템 사용자입니다. 이제 노트북에서 공유 폴더에 쓸 수 있습니다.
의견을 주신 @jaromanda-x와 @symcbean에게 감사드립니다.