다른 사용자가 액세스하면 동일한 파일 경로가 다른 파일로 전송되는 파일 시스템이 있습니까?

다른 사용자가 액세스하면 동일한 파일 경로가 다른 파일로 전송되는 파일 시스템이 있습니까?

다른 사용자가 동일한 파일 경로에 액세스할 때 다른 파일에 액세스하고 싶습니다.

예를 들어 /path/a.txtLinux에는 파일 경로가 있습니다. user1이 액세스하면 /path/a.txt실제로 액세스하고 /user1/a.txt, user2가 액세스하면 /path/a.txt실제로 액세스합니다./user2/a.txt

어떤 도움이라도 대단히 감사하겠습니다. 감사해요!

답변1

나는 이 작업을 즉시 수행할 수 있는 4가지 방법을 생각해 보았지만 그 중 어떤 것도 권장하지 않습니다!

  1. 각 사용자별 네임스페이스 내에서 Linux 네임스페이스를 사용하고 기본 파일 위에 사용자별 파일을 바인드 마운트합니다.

  2. 대상 파일에 대한 심볼릭 링크가 있는 기본 파일을 사용하여 사용자별 chroot 환경 생성

  3. FUSE 기반 파일 시스템을 실행하고 이를 기본 파일 위에 마운트합니다.

  4. 사용자별 파일 읽기/쓰기를 처리하는 데몬을 사용하여 기본 파일을 명명된 파이프로 만듭니다.

하지만모두설정이 복잡하네요부서지기 쉬운나는 그들을 추천하지 않을 것입니다. 구현 방법에 대해서는 더 깊이 다루지 않겠습니다. 왜냐하면 빌드할 수 없으면 고칠 수도 없기 때문입니다.언제망가졌어!

일반적으로 말하면, 코드에서 다른 방법(예: 환경 변수 사용)으로 문제를 해결해야 합니다.

답변2

목표를 달성하려면 변수를 사용하세요. bash를 사용한다고 가정하고 user1에 대해 ~/.bashprofile에 cpath와 같은 변수를 정의하십시오.

cpath=custom/path1

파일에 액세스하는 것은 다음과 같습니다.

"/some/path/$cpath/filename" # Quotes important to prevent word splitting

user2의 경우 다음과 같은 변수를 정의하십시오.

cpath=custom/path2

파일에 액세스하는 것은 다음과 같습니다.

"/some/path/$cpath/filename" #note the same path

관련 정보