Synology NAS에서 NFS를 사용한 사용자 ID 매핑


20

Synology NAS 상자 (DSM 5.1 실행)가 있고 NFS를 통해 디렉토리를 내보냈습니다. 우분투 상자에 마운트하려고합니다.

대부분 잘 작동하지만 사용자 및 그룹 매핑에 문제가 있습니다. 우분투 상자에서 나는 uid 1000 (roger), gid 1000 (roger)입니다. Synology에는 uid 1026 (roger), 그룹 100 (사용자)이 있습니다.

NFSv3을 사용하는 경우 숫자 uid / gid 값을 사용하므로 소유권이 Synology에서 엉망이됩니다.

동일한 사용자를 사용하여 동일한 우분투 상자에서 NFS 마운트에만 액세스해야한다면 괜찮을 것입니다. 그러나 CIFS (SMB)를 사용하여 Windows 상자에서 디렉토리에 액세스합니다. 잘못된.

mount -o nfsvers=4Synology의 기본 설정으로 NFSv4 ( )를 사용 하면 Synology에서 소유 한 파일 이 Ubuntu 상자에서 볼 때 roger.users소유 한 것으로 나타납니다 roger.users. 이거 좋다

그러나 내가 touch파일 일 때 :

roger@ubuntu$ touch /mounts/diskstation/music/foo

결국 1000.1000Synology에서 소유 nobody.4294967294하고 Ubuntu 상자에서 볼 때 소유 한 것으로 표시됩니다 .

Synology 포럼의 주제에서 찾을 수있는 모든 것은 2011 년, NFSv4가 지원되지 않는 날짜이거나 같은 질문을하고 포기한 사람들로 구성되어 있습니다.

완전성을 위해 다음 /etc/exports이 있습니다.

/volume1/music  10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)

... 그리고 우분투 상자에 다음을 마운트합니다.

mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4

나는이 몇 가지 힌트를 발견 sec=sys: 문제가 될 수도를 왜 NFSv4의 UID를 / GID 매핑이 AUTH_UNIX (AUTH_SYS)와 작업을하지 않는 ,하지만 그건 해결책이 없습니다.

이 문제를 해결할 수있는 간단한 방법이 있습니까? 이 문제를 해결 하는 더 복잡한 ( 기침 Kerberos 기침 ) 방법이 있습니까?

진심으로, Kerberos 답 이라면 , 나는 그 명중을 취할 것이지만, 그것에 많은 시간을 낭비하기 전에 알고 싶습니다.

업데이트 : Synology 설명서에서 다양한 Kerberos 옵션에 대해 이야기 하는 동안 UI에서 찾을 수 없습니다. 릴리스 노트의 "Kerberos 보안 맛이 ... 구현되면"상태. 특정 모델에 없을 수 있음을 의미하는 페이지를 찾았지만 다시 찾을 수 없습니다. 시스템 정보 페이지에 따라 DS211이 있습니다. 어쩌면 내가 운이 없어?


LDAP 서버를 별도로 구성하십시오. 그런 다음 NFS 클라이언트 (우분투 상자)에서 ldap 클라이언트를 구성하십시오. 또한 nfs 클라이언트 시스템 (ubuntu)에서 NAS의 nfs 공유 자동 마운트를위한 autofs 서비스를 구성하십시오. NFS 클라이언트에서 ssh 사용자를 작성하여 사용자의 컨텐츠에 액세스하십시오
Sathish

@DavidPostill,이 질문에서 [synology] 태그를 계속 삭제하는 이유를 이해합니다. 예외 :이 질문 synology diskstation 소프트웨어에만 해당됩니다. 또는 NAS가 아닌 해당 소프트웨어에 적용 할 수있는 솔루션을 찾고 있습니다. diskstation 태그가 없으며 아직 태그를 생성 할 담당자가 없습니다.
Roger Lipscombe

커뮤니티 토론 에 따라 회사와 관련이있는 일반 태그 는 제거해야한다는 점에 유의하십시오 . 이 사이트에서 태그를 만들려면 300 평판 만 필요합니다. synology-diskstation 태그 를 작성하십시오 .
gparyani

답변:


8

NFSv4 ID 매핑이 제대로 작동하려면 클라이언트와 서버 모두 idmapdID 매퍼 데몬을 실행하고 에서 동일하게 Domain구성되어 있어야합니다 /etc/idmapd.conf.

이렇게하면 NFS 클라이언트 roger@example.com가 유선의 NFS 명령에서 와 같이 ID 자격 증명을 전송하고 NFS 서버 idmapper는이를 rogerNFS 서버에서 호출 된 사용자에게 매핑합니다 . UID와 GID는 중요하지 않으며 idmapper에 의해 각 시스템에 매핑됩니다.

그러나 나는 내 Synology에서 그것을 귀찮게하지 않습니다. 내 공유 폴더 에는 다음 권한이 있습니다.

  • 권한
    • 로컬 사용자
      • 관리자 = 읽기 / 쓰기
  • NFS 권한
    • 스쿼시
      • 모든 사용자를 관리자에게 매핑

그러면 anonuid=1024,anongid=100( admin사용자 및 users그룹)이 /etc/exportsNAS 에서 내보내기에 추가됩니다 .

내 NFS 클라이언트 (ID 매퍼가 실행 중이 아님)는 내 NFS 명령을 사용자 ( 1000:1000) 로 보내며 UID와 GID가 NAS에 없기 때문에 UID와 GID가 변환 1024:100되어 모든 권한이있는 관리자

이것은 비즈니스 환경에서 매우 전문적이지 않고 안전하지 않은 NFS 사용이지만 집에서 파일에 액세스하는 것은 NFS 동작을 남용하는 것입니다.

또 다른 옵션은 rogerNFS 클라이언트와 NAS에서 UID와 GID를 동일 하게 만드는 것입니다 . 그런 다음 ID 매핑없이 NFSv4를 사용하거나 UID와 GID에만 의존하는 NFSv3을 사용할 수 있습니다.


1
이것은 NFS가 네트워크 환경에서 제공하는 전체 보안이 필요하지 않은 가정용 Linux 사용자를위한 합리적인 솔루션을 문서화 한 유일한 공간 일 수 있습니다. Ubuntu 19.4 및 DSM 6.2.2에서 작동합니다.
VanAlbert

1

나는 똑같은 문제로 정말로 어려움을 겪었습니다. Synology에서 Docker로 Kerberos 서버를 설정하고 ID 매핑을 설정하는 데 어려움을 겪었지만 여전히 동작이 마음에 들지 않았습니다. Kerberos가 너무 과도하게 설계되어 재부팅 및 자동 마운트 작업을 계속하기가 어렵습니다. 또한 새로 만든 파일의 기본 umask는 0000이고 로컬 umask가 무엇이든 모든 새 파일은 777 모드로 작성되었습니다.

내 솔루션은 suprjami와 비슷하지만 조금 더 가져갔습니다.

  • Synology 웹 UI로 새 사용자를 생성하고 이름을 다음과 같이 지정하십시오 roger.remote. 사용자 그룹에 대해서도 동일하게 수행하고 사용자 이름과 동일하게 이름을 지정하십시오.
  • 루트로 Synology에서 / etc / passwd를 편집하고 roger.remoteUID를 1000으로, GID를 1000으로 변경
  • / etc / group을 편집하고 그룹 roger.remote을 1000으로 변경하십시오.
  • Synology 웹 UI에서 squash를 "관리 할 모든 사용자"로 설정하고 저장하십시오.
  • 다시 루트로 / etc / exports를 편집하고 UID / GID를 anonuid=1000,anongid=1000
  • 다음으로 NFS를 다시 시작하십시오. /usr/syno/etc.defaults/rc.sysv/S83nfsd.sh restart
  • 이것 또한 약간 해 키지 만- chmod 777 /volume1. 홈 디렉토리가 마운트되는 데 이상한 문제가 많이있었습니다. glibc access()함수가 마운트 된 NFS 디렉토리에서 액세스 거부를 리턴 하므로 KDE가 시작되지 않습니다 . (그러나 모든 서브 디렉토리가 작동 할 것입니다) Firefox에서도 비슷한 문제가 발생했습니다. 액세스 검사로 인해 마운트 된 디렉토리에 파일 저장을 거부했습니다. 권한이 정확하더라도 마운트 된 디렉토리에서 파일을 터치 / 생성 / 쓰기 할 수 있습니다. 부모 / volume1 디렉토리를 쓰기 가능한 상태로 변경하면 그 멍청한 문제가 해결되어 클라이언트 응용 프로그램에 쓸 수 없었습니다.
  • 공유에서 모든 파일 시스템 ACL을 제거하십시오. 많은 무작위 실험을 통해 이러한 ACL이 파일의 모드 마스크에 문제를 일으키는 것으로 나타났습니다. 나는 ACL 마스터가 아니므로 더 우아한 솔루션이있을 수 있습니다. Synology의 루트로서을 수행하십시오 synoacltool -del /volume1/myshare. +ls -l 출력에서 ​​기호가 제거 된 것을 볼 수 있습니다.
  • 공유의 소유권을 새로운 사용자로 변경하십시오. chown roger.remote:roger.remote /volume1/myshare
  • 모드를 755로 변경하십시오. chmod 755 /volume1/myshare
  • 클라이언트에 볼륨을 마운트하고 권한을 테스트하십시오. 파일도 터치하고 bash umask가 올바르게 적용되었는지 확인하십시오.
마스크 
0002
$ cd / mnt / myshare
터치 테스트
$ ls -l 테스트
-rw-rw-r-- 1 로저 로저 0 10 월 21 일 18:15 테스트

Synology에서 다음을 볼 수 있습니다 :

# ls -l / volume1 / myshare / test
-rw-rw-r-- 1 roger.remote roger.remote 0 10 월 21 일 18:15 테스트

즐겨!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.