Linux에서 HFS + 볼륨을 마운트 할 때 기본 권한 우회


8

Snow Leopard 및 Kubuntu 11.10과 함께 듀얼 부팅 Macbook Pro를 사용하고 있으며 Kubuntu를 실행할 때 홈 Mac 홈 디렉토리 를 읽고 싶습니다 (쓰기에 신경 쓰지 않음).

아무 문제없이 마운트 할 수 있지만 Kubuntu의 사용자는 다른 uid (Mac의 경우 502, Kubuntu의 경우 1000)로 인해 Mac 사용자가 소유 한 HFS +의 파일을 볼 수 없습니다.

HFS +에 대한 커널 문서를 보면 다음과 같은 내용을 읽었습니다.

When mounting an HFSPlus filesystem, the following options are accepted:
[CUT]
    uid=n, gid=n
        Specifies the user/group that owns all files on the filesystem
        that have uninitialized permissions structures.
        Default:  user/group id of the mounting process.

그래서 다음 옵션을 사용해 보았습니다.

$ sudo mount -t hfsplus -o uid=1000,gid=1000 /dev/sda2 /mnt/Mac

그러나 그들은 아무것도하지 않는 것 같습니다 : ls -l을 사용하여 둘러 볼 때 여전히 동일한 권한이 표시됩니다. 나는 뭔가 실마리가 있을지 모른다.

Ubuntu에서 사용자 ID를 Mac Os X와 일치하도록 변경할 수 있지만 가능하면 피하는 것이 좋습니다.

답변:


9

bindfs답입니다. 이미 마운트 된 파일 시스템을 사용하여 원하는 uid를 볼 수 있습니다.

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

편집하다:

또한 문서를 읽으면 map옵션 (1.10 이상)이 더 적합 할 수 있음을 깨달았습니다 .

sudo bindfs --map=502/1000 /media/diskFoo ~/myUIDdiskFoo

매우 멋진 솔루션. OS의 기본 동작을 변경하지 않고 문제를 해결하고 더 많은 옵션을 가능하게합니다. 시스템이 다른 사용자와 공유되는 경우주의하십시오. 개인 파일이 예기치 않은 대상에게 노출 될 수 있습니다.
gerlos

1
네. 시스템 마운트 유틸리티가이 기능을 제공하지 않는다는 것에 놀랐습니다. 또는 bindfs의 map기능을 사용 하여 사용자 502를 1000으로 매핑하면 더 안전하고 의도 한 것보다 더 안전 할 수 있습니다.
Catskul

내가 말할 평판이 없기 때문에 Catskul의 대답에 작은 실수가 있음을 주목할 것입니다. = 누락은 sudo bindfs --map = 502 / 1000 / media / diskFoo ~ / myUIDdiskFoo
J. Simon van der Walt

1

결국, 나는 Mac OS X 사용자와 동일한 UID로 Linux 사용자를 만들었지 만 많은 파일이 mac 사용자 "unknown", UID에 의해 소유되어 있기 때문에 Mac hfs + 볼륨에서 가정의 모든 디렉토리를 탐색 할 수 없습니다 99 ( http://googlemac.blogspot.com/2007/03/user-99-unknown.html 참조 ).

다른 컴퓨터에 연결할 때 볼륨을 마운트하고 읽을 수 있도록하기 위해 그렇게 한 것 같습니다. 일반 사용자는 UID 99가 소유 한 파일을 보면 소유자 인 것으로 간주합니다. 꽤 이상합니다. 오직 루트 만이 그것들을 그대로 본다.

그래서 Mac Os X에서 재부팅하고 관리자 권한으로 다른 사용자로 로그인하고 chown -R 502 : 20 / Users / gerlos / *를 사용하여 집에있는 모든 파일의 소유자를 변경했습니다. 이제 아무 문제없이 모든 것을 읽을 수 있습니다.

비고 :

  • Kubuntu 11.10에서 새 사용자를 만드는 기본 kubuntu gui 도구는 UID가 1000 미만인 사용자를 만들 수 없습니다. 대신 터미널에서 adduser를 사용하십시오.
  • 터미널에서 "id"명령을 사용하여 사용자 UID를 알 수 있습니다.
  • mac OS X에서는 파일의 실제 소유자를 보려면 루트 여야합니다. "ls -n / Users / gerlos"와 "sudo ls -n / Users / gerlos"를 입력하면 다른 결과를 기대할 수 있습니다.

"실제"유닉스 사용자와 Finder가 인식 한 사용자 간의 OSX 차이로 인해 많은 두통이 생겼습니다. OSX의 일부 앱이 이상하게 동작 할 수도 있습니다 (예 : Dropbox가 파일을 동기화하지 않음). 문제를 피하려면 OSX 시스템에 로그인하고 터미널을 열고 유닉스 사용자가 OS X 사용자가 이미 소유 한 모든 것을 소유하고 있는지 확인하십시오. 어쩌면 나는 무언가를 이해하지 못하지만 GUI를 사용한 경험으로는 충분하지 않습니다.
gerlos

1

사실 나는이 질문을 겪을 때 비슷한 것을하려고합니다. 첫 번째 게시물을 보면 요청 된 마운트 옵션이 Linux 시스템의 기본값 (예 : uid 1000) 대신 어떤 사용자 uid를 사용 해야하는지 묻습니다. 따라서 마운트하려는 파일 시스템의 소유자 인 502를 사용해야합니다.

나는 이것을 내 자신의 상황에서 테스트했으며 파일 시스템이 내 시스템간에 공유되도록 uid 99를 사용하여 훌륭하게 작동했습니다. 이를 통해 uid를 변경하지 않아도됩니다. 공유해 주셔서 감사합니다. 이것은 더 이상 당신을 위해하지 않을 수 있지만 다른 사람을 도울 수 있습니다. 건배


1
권리. 최상의 해결책은 UID와 권한을 그대로두고, 평소와 같이 HFS + 파일 시스템을 마운트 한 다음 bindfs를 사용하여 HFS + 파일 시스템 아래에 홈을 마운트하여 모든 것이 Linux 사용자가 소유 한 것으로 보입니다. 이런 식으로 HFS + 파일 시스템에서 권한을 변경하거나 사용자 정의 UID를 사용할 필요가 없으므로 두 시스템에서 기본 동작을 유지합니다. 각 사용자의 집에 bindfs를 사용하여 다시 마운트 할 수 있기 때문에 공유 시스템에서도 개인 파일을 보존하여 사용자가 계속 액세스 할 수 있습니다.
gerlos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.