다음 명령을 사용하여 여러 FTP 사용자에게 동일한 대상 디렉터리에 대한 액세스 권한을 부여하려고 하면:
sudo mount --bind /home/max/home/ExLand /home/riven/Desktop/ExLand
sudo mount --bind /home/r1ven/home/ExLand /home/riven/Desktop/ExLand/etc/fstab
/etc/fstab
/home/r1ven/home/ExLand /home/riven/Desktop/ExLand none bind 0 0
/home/max/home/ExLand /home/riven/Desktop/ExLand none bind 0 0
/var/log/syslog에서 오류가 발생했습니다.
Dec 12 18:32:31 riven kernel: [ 2.131397] systemd-fstab-generator[292]: Failed to create unit file /run/systemd/generator/home-riven-Desktop-ExLand.mount, as it already exists. Duplicate entry in /etc/fstab?
Dec 12 18:32:31 riven kernel: [ 2.131711] systemd[284]: /usr/lib/systemd/system-generators/systemd-fstab-generator failed with exit status 1.
결과적으로 다시 시작한 후에는 하나의 디렉터리만 마운트되었습니다.
/home/r1ven/home/ExLand /home/riven/Desktop/ExLand 바인딩 없음 0 0
두 번째 디렉터리는 마운트되지 않았으며 액세스할 수 없습니다.
내가 뭘 잘못했는지 말해줘? )
디렉토리를 수동으로 마운트하면 재부팅하기 전에 모든 것이 잘 작동하고 두 FTP 사용자 모두 하나의 디렉토리를 사용할 수 있습니다. 그러나 재부팅 후에는 위 디렉토리만 사용할 수 있고 두 번째 디렉토리는 완전히 액세스할 수 없지만 수동으로 다시 마운트하면 나타날거야.
답변1
동일한 대상 마운트 지점에 두 개의 바인드 마운트를 서로 겹쳐서 수행하고 있습니다.
1 단계:
sudo mount --bind /home/max/home/ExLand /home/riven/Desktop/ExLand
/home/max/home/ExLand
이제 에 액세스 할 수 있습니다 /home/riven/Desktop/ExLand
.
2단계: ( /etc/fstab
명령 끝에 있는 단어가 오타라고 가정)
sudo mount --bind /home/r1ven/home/ExLand /home/riven/Desktop/ExLand
이렇게 하면 /home/r1ven/home/ExLand
사이트에 액세스 할 수 있지만 /home/riven/Desktop/ExLand
이전 번들 설치에는 더 이상 액세스할 수 없습니다. (기존 세션이 있는 경우 cd
해당 버전이 /home/riven/Desktop/ExLand
계속 표시될 수 있지만 /home/max/home/ExLand
새로 방문하면 해당 /home/r1ven/home/ExLand
버전만 표시됩니다.)
사용자가 max
변경하는 경우 두 개의 별도 장소가 있기 때문에 /home/max/home/ExLand
사용자는 r1ven
해당 변경 사항을 모든 곳에서 볼 수 없습니다 ./home/r1ven/home/ExLand
유닛 이름은 대상 마운트 지점 이름을 기반으로 생성되므로 이와 같이 두 개의 겹치는 마운트 대상이 둘 다 동일한 유닛 이름을 가지게 되는데 이는 버그입니다 systemd-fstab-generator
. .mount
이와 같이 중첩되는 마운트 지점은 별로 유용하지 않고 일반적으로 버그이므로 이 버그는 아마도 좋은 것일 것입니다.
목표가 사용자 max
와 r1ven
사용자 모두에게 액세스 권한을 부여하는 것이라면 /home/riven/Desktop/ExLand
바인드 마운트를 반대 방향으로 수행해야 합니다.
이렇게 생각해보세요: for mount --bind
,원천데이터가 상주하는 곳입니다진짜이것은표적보고 싶은 곳입니다.
따라서 /etc/fstab
항목은 다음과 같습니다.
/home/riven/Desktop/ExLand /home/r1ven/home/ExLand none bind 0 0
/home/riven/Desktop/ExLand /home/max/home/ExLand none bind 0 0
나중에 max
에 파일을 추가 하면 /home/max/home/ExLand
사용자는 해당 파일도 거기에서 볼 r1ven
수 있습니다 (올바른 디렉터리 권한을 가정할 때). 이제 두 위치 모두 실제로 액세스할 수 있기 때문입니다 ./home/r1ven/home/ExLand
/home/riven/Desktop/ExLand