Linux 사용자/그룹을 Windows 2019 NFS 공유에 매핑

Linux 사용자/그룹을 Windows 2019 NFS 공유에 매핑

동일한 네트워크에 Windows Server 2019 시스템과 CentOS 8 시스템이 있습니다. CentOS 서버는 Windows 시스템의 파일을 사용하는 웹앱을 호스팅하고 있습니다.

이 파일을 읽으려면 Windows 측에 Samba 공유를 설정하고 mount -t cifs //myserver/share /media/windows.

이 방법은 효과가 있었지만 몇 가지 문제가 발견되었습니다. 때로는 이 Samba 공유의 파일에 액세스하려고 할 때 파일이 그대로 남아 있는 경우가 있습니다. 문제가 다시 발생하므로 마운트 해제했다가 다시 마운트해도 도움이 되지 않는 것 같습니다.

Windows 2019와 CentOS 간에 파일을 공유하기 위해 Samba 대신 NFS를 사용해 보기로 결정했습니다. 동일한 폴더를 대신 NFS 공유로 설정한 후 mount -t nfs myserver:/share /media/windowsSamba를 중단시키는 파일에 액세스할 수 있었습니다.

내가 겪고 있는 문제는 CentOS 측에서 NFS 공유에 새 파일을 만들 때 Windows 측에서 권한이 잘못되어 Windows 서버의 사용자가 파일에 액세스할 수 없다는 것입니다.

이것저것 알아보고 NFS 사용자 매핑을 설정해 보려고 했는데 제대로 하지 못한 것 같습니다.

PowerShell을 사용하여 다음을 실행했습니다.

Install-NfsMappingStore -InstanceName "NFSMappingStore" -LdapPort 10389

그리고 보았다:

MYSERVER 서버에 NFSMappingStore라는 ADLDS 인스턴스가 성공적으로 생성되었습니다. 인스턴스는 포트 10389에서 실행 중이고 파티션은 CN=nfs,DC=nfs입니다.

그런 다음 다음을 실행했습니다.

Set-NfsMappingStore -EnableLdapLookup $true -LdapNamingContext "CN=nfs,DC=nfs"
    -LdapServer localhost:10389

효과가 있는 것을 확인하고 사용자를 추가하려고 했습니다.

New-NfsMappedIdentity -MappingStore LDAP -Server localhost:10389
    -UserIdentifier 980 -GroupIdentifier 1001
    -UserName CentOsUser -PrimaryGroup "Domain Users"

이것이 올바르게 작동하는 것 같았으므로 CentOS 측에서 다음을 통해 NFS 공유를 사용자로 마운트했습니다 CentOsUser.

sudo -u CentOsUser -g CentOsGroup mount -t nfs myserver:/share /media/windows

이것은 효과가 있었고 파일을 만들고 쓸 수 있었습니다. 그러나 Windows 측에서는 (새로 생성된) 파일의 소유자가 S-1-5-88-1-980실제로 CentOsUser.

S-1-5-88-2-1001또한 S-1-5-88-3-420및 도 참조됩니다 S-1-5-88-4.

왜 표시되나요 S-1-5-88-1-980? 내가 사용자 980에게 매핑된 줄 알았는데 CentOsUser? 저도 그룹 1001에 매핑한 줄 알았는데 Domain Users왜 표시되나요 S-1-5-88-2-1001?

답변1

나는 같은 문제가 있었고 로그 시간 이후로 어려움을 겪고있었습니다 ...

  • 이제 Linux 서버를 AD와 통합했습니다.
  • Windows에서 모든 파일 및 디렉터리 수준 권한 관리
  • Windows NFS 공유에서 파일에 액세스하는 애플리케이션 사용자는 AD 인증 사용자입니다.

위의 절차는 여전히 나를 위해 작동합니다.

답변2

내가 찾은 가장 좋고 쉬운 해결책은 다음과 같습니다.https://github.com/billziss-gh/sshfs-win, 연결된 서버는 완벽하게 작동하는 네트워크 드라이브로 표시됩니다.

편집: Linux에 NTFS 공유 마운트

mkdir /mnt/win1
mount -t cifs //10.10.1.100/share -o username=myUser,password=myPassword /mnt/win1

관련 정보