windowsServer2012R2でnfsサーバを作ってみた

留意
windowsServerで作ったNFSをLinuxでマウントして、Linuxからinotify-toolsで監視しても動きは取得できないみたい...

機能の追加

サーバーマネージャを立ち上げて、メニューの「管理」から「役割と機能の追加」を選択する
2019y03m16d_122851759.png
「役割と機能の追加ウィザード」が立ち上がる。「次へ」ボタンを押下し続け、「サーバーの役割」項目にて
役割として「NFSサーバー」を選択します。
2019y03m16d_123236733.png
チェックボックスを有効にすると、下記画面が表示されます。「機能の追加」ボタンを押下します。
2019y03m16d_123430943.png
元の「役割と機能の追加ウィザード」画面に戻り、再度「次へ」ボタンを押下し続けます。
「確認」項目で、「インストール」ボタンを押下して完了させます。

NFS共有フォルダを作成

サーバーマネージャから設定する方法が正統みたい。
サーバーマネージャを立ち上げて、左側のツリーから「ファイル サービスと記憶域」を選択します。
2019y03m22d_235856139.png
次に、「共有」を選択します
2019y03m23d_000012935.png
すると、共有フォルダの一覧が表示されますが、初回なので「共有がありません」となっている。
ここで「ファイル共有を作成するには、新しい共有ウィザードを実行してください。」リンクを押下します。
2019y03m23d_000249517.png
すると、「新しい共有ウィザード」画面が表示されます。ここでは作成する共有フォルダのプロファイル、場所、その名称らを定義します。
まずは、ファイル共有プロファイルとして、「NFS共有-簡易」を選び「次へ」ボタンを押下します。
2019y03m23d_000424430.png
*「NFS共有-高度」を選択するには、先の「機能の追加」で「ファイルサーバーリソースマネージャ」が追加で必要です。
2019y03m23d_000722681.png
「この共有のサーバーとパスの選択」画面になります。
2019y03m23d_001124892.png
ここでは、「C:\data」を共有フォルダとして供出したいので、「カスタムパスを入れてください」にて「C:\data」と入力して、「次へ」ボタンを押下します。
2019y03m23d_001325280.png
「共有名の指定」画面になりますが、そのままで宜しければ、「次へ」ボタンを押下します。
2019y03m23d_001526407.png
指定したフォルダが存在しなければ、警告が表示されますが、「OK」ボタンを押下して、作成させます。
2019y03m23d_001718571.png
次に、「認証方法の指定」画面が表示されます。
windowsのリソースの一部をNFSサーバとして提供しているので、アクセスできるのはwindowsのkerberos認証のお仲間に入っているマシンとなる。ここではsambaのActiveDirectoryを利用しているので、このwindowsServerがこのsambaADに参加していれば、他のAD参加のLinuxマシンであればアクセス可能である(後述する)。

っが、そうでない場合、認証なしでアクセス可能にさせる必要がある。それが「サーバー認証なし」となる。
その場合、別途windows側にpasswdとgroupファイルが必要であるのだが、それもない場合「マップされていないユーザーアクセスを有効にする」にチェックを入れる必要がある。

2019y03m23d_002823892.png
ここでは、「UID/GIDによるマップされていないユーザーアクセスを許可する」と有効にしている。
この場合、windows側からは誰のファイルかは分かりませんが、NFS-Client側からは誰のファイルかは分かります。
「次へ」ボタンを押下します。
「共有のアクセス許可を指定」画面になります。
作ったNFS共有フォルダをどのマシンに提供するか、そしてread onlyか、書き込みも許可するかを定めます。
2019y03m23d_003419582.png
画面下方の「追加..」ボタンを押下して、「アクセス許可の追加」画面を出します。そこで、「All Machines」を有効にして、言語のエンコードはそのままに、共有のアクセス許可を「読み取り/書き込み」として「追加」ボタンを押下します。
*「ルートアクセスを許可する」はnfsで言うところのno_root_squashでしょうか
2019y03m23d_003709451.png
「共有のアクセス許可を指定」画面が更新されます。画面下部の「次へ」ボタンを押下します。
2019y03m23d_003900885.png
「アクセスを制御するアクセス許可の指定」画面になります。
現在の所、rootでのmountはできますが、中を調整することは出来ません。そのため、「アクセス許可をカスタマイズする」ボタンを押下して、「追加」ボタンを押下します。
2019y03m23d_004621014.png
表示された「dataのアクセス許可」画面にて「プリンシパルの選択」リンクを押下して、「everyone」を選びます。
そして種類は「許可」、適用先を「このフォルダのみ」、基本のアクセス許可に「変更」を有効にします。
2019y03m23d_004608076.png
「OK」ボタンを押下後、「dataのアクセス許可」画面に戻り、そこで「OK」ボタンを押下します。
元の「アクセスを制御するアクセス許可の指定」画面に戻り、everyoneが追加されたことを確認して、「次へ」ボタンを押下します。

2019y03m23d_005304842.png

「選択内容の確認」画面が表示されます。確認して、「作成」ボタンを押下します。
「結果の表示」画面になりますが、エラーがなければこれで完了で、「閉じる」ボタンを押下します。

Linuxからアクセス

作ったwindowsのNFSサーバは、サーバ名が win12r2 でexportなフォルダ名は data である。
なのでLinuxからは下記のようにしてmountできる。

[root@c ~]# mount win12r2:/data /mnt
 
[root@c ~]# mount |grep win12r2
win12r2:/data on /mnt type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,
clientaddr=192.168.0.83,local_lock=none,addr=192.168.0.85)
[root@c ~]#
 
[root@c ~]# ls -ld /mnt/
drwxrwxrwx 2 nobody nobody 64  3月 23 00:17 /mnt/
[root@c ~]#

everyoneを入れたので mountポイントは 777 になる。
ユーザsaberが/mntにフォルダを作ると

[saber@c ~]$ mkdir /mnt/Alter
[saber@c ~]$ ls -ld /mnt/Alter
drwxrwxr-x 2 saber saber 64 Mar 23 01:01 /mnt/Alter
 
[saber@c ~]$ cd /mnt/
[saber@c mnt]$ getfacl Alter/
# file: Alter/
# owner: saber
# group: saber
user::rwx
group::rwx
other::r-x
 
[saber@c mnt]$

となる。
っが、windows側からは下記のように表示される。
2019y03m23d_010441480.png

統合認証まではしないが、簡単にwindowsのユーザとLinuxのユーザを結び付けさせたい。

windowsマシンの「C:\Windows\System32\drivers\etc」にpasswdとgroupをいれればいいみたい。
windows側のアカウントとして
2019y03m23d_122047752.png
またそのアカウントのグループも用意されてるとする。
2019y03m23d_122210691.png

そしてLinux側にも同じユーザ、グループが存在しているのなら、

[illya@c ~]$ getent passwd |grep 1003
illya:x:1001:1003::/home/illya:/bin/bash
saber:x:1002:1003::/home/saber:/bin/bash
 
[illya@c ~]$ getent group|grep 1003
fgo:x:1003:
 
[illya@c ~]$

下記のようにpasswdとgroupファイルを「C:\Windows\System32\drivers\etc」に用意すればいいみたい

(passwd)
Administrator:x:0:0:root:/root:/bin/bash
illya:x:1001:1003::/home/illya:/bin/bash
saber:x:1002:1003::/home/saber:/bin/bash
 
(group)
BUILTIN\Administrators:x:0:root
fgo:x:1003:illya,saber

Linux側でフォルダを作ったり、ファイルを作るとwindows側には下記のように認識される
2019y03m23d_122915542.png

NFSサーバのwindowsもNFSクライアントのLinuxも共にActiveDirectoryに参加させている

ここでActiveDirectoryはsambaで作ったADです。
同じADの中に存在するNFSサーバ、クライアントなら前述のpasswd・groupファイルは必要とせずアカウントの一致が行える。

windowsマシン、Linuxマシン共にADに入れます。

その後、windowsマシンでNFSの場所として提供しているC:\dataを選択して、その右クリックから「プロパティ」を選択します。
2019y03m23d_173848594.png


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2019-03-24 (日) 01:24:08 (154d)