Solaris 11 및 nfs idmapping

Solaris 11 및 nfs idmapping

간단한 질문 Solaris 11에서 nfs 공유를 만들었습니다.

zfs set share.nfs=on rpool/public

내 Linux 클라이언트가 설치했습니다.

mount solaris2:/var/public /mnt/share

myuser에게 쓰기 권한을 부여하고 싶습니다. 세 가지 해결 방법을 알고 있습니다.

해결 방법 1: chmod 777

chmod 777 /var/public #NO COMMENT

해결 방법 2: 원격 시스템과 로컬 시스템 간의 uid를 동일하게 만듭니다.

로컬 Solaris 사용자의 uid를 원격 Linux 사용자의 uid로 변경한 다음 acl을 제공합니다. 사용자가 한 명뿐이라면 괜찮지만 다중 사용자 시스템에서는 정말 끔찍합니다(모든 uid를 최신 uid 이전 uid!)

옵션 3: 원격 사용자의 uid를 로컬 사용자에 매핑한 다음 acl 할당

idmap add remoteuser@remotehost unixuser:myuser
chmod A=user:myuser:add_file/read_data/execute/write_data/execute:allow /var/public

하지만 작동하지 않습니다. 로컬 사용자는 /var/public에 데이터를 쓸 수 있지만 원격 사용자는 그럴 수 없습니다.

편집 1: 내가 아는 한, idmap 명령은 gid/uid를 SID로 변환하는데 이는 AD 또는 LDAP에 유용합니다.

편집 2: 위로일루모스그들은 몇 가지 흥미로운 옵션인 uidmap 및 gidmap을 추가했습니다. 단 하나의 문제가 있습니다. Solaris11은 Illumos "배포판"이 아니며 이러한 옵션은 단순히 존재하지 않습니다.

답변1

더 나은 솔루션을 기다리는 동안 다음 해결 방법이 좋습니다. 클라이언트와 서버에서 동일한 gid를 사용하여 그룹을 만든 다음 acl을 만듭니다.

클라이언트에서(Linux)

groupadd -g 10093 nfs-users
usermod -aG nfs-users myuser

서버에서(Solaris)

groupadd -g 10093 nfs-users
usermod -G nfs-users myuser

그런 다음 acl을 공유 zfs 세트(/var/public에 마운트됨)에 추가했습니다.

chmod A+group:nfs-users:write_data/append_data/execute/add_file/add_subdirectory:allow /var/public

테스트: 잘 작동합니다. nfs-users 그룹에 속한 모든 사용자(원격 및 로컬)가 공유에 쓸 수 있습니다. 더 나은 해결책은 AD(또는 samba4) + idmap을 사용하는 것이지만 이 해결 방법은 로컬 파일 환경에서도 잘 작동합니다.

관련 정보