Linux ユーザー/グループを Windows 2019 NFS 共有にマッピングする

Linux ユーザー/グループを Windows 2019 NFS 共有にマッピングする

同じネットワーク上に Windows Server 2019 マシンと CentOS 8 マシンがあります。CentOS サーバーは、Windows マシンのファイルを使用する Web アプリをホストしています。

これらのファイルを読み取るために、Windows 側に Samba 共有を設定し、 経由で CentOS 側にマウントしました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-420S-1-5-88-4

なぜ表示されるのですか? ユーザーにS-1-5-88-1-980マッピングしたと思ったのですが? グループにもマッピングしたと思ったのですが、なぜ表示されるのですか?980CentOsUser1001Domain UsersS-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

関連情報