Windows 2025
Sponsored Link

NFS サーバー : Linux との簡易ユーザーマッピング2024/12/06

 

非 Active Directory ドメイン環境における Windows - Linux 間での NFS 利用時に、簡易的なユーザーマッピングをしたい場合は以下のように設定します。

[1] Linux 側のユーザー/グループ情報を確認します。
root@dlp:~# cat /etc/passwd 

.....
.....
ubuntu:x:1000:1000:ubuntu:/home/ubuntu:/bin/bash
debian:x:1001:1001:,,,:/home/debian:/bin/bash
redhat:x:1002:1002:,,,:/home/redhat:/bin/bash

root@dlp:~# cat /etc/group 

.....
.....
users:x:100:debian,redhat
ubuntu:x:1000:
debian:x:1001:
redhat:x:1002:
[2] Windows 側で、簡易マッピングのファイルを作成します。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\Serverworld> New-Item C:\Windows\System32\drivers\etc\passwd 


    Directory: C:\Windows\System32\drivers\etc


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         12/5/2024   8:23 PM              0 passwd


PS C:\Users\Serverworld> New-Item C:\Windows\System32\drivers\etc\group 


    Directory: C:\Windows\System32\drivers\etc


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         12/5/2024   8:23 PM              0 group

# 例として ユーザー winuser01 ⇔ debian をマッピング
PS C:\Users\Serverworld> Add-Content C:\Windows\System32\drivers\etc\passwd `
"winuser01:x:1001:1001:debian::"

# 例として ユーザー winuser02 ⇔ redhat をマッピング
PS C:\Users\Serverworld> Add-Content C:\Windows\System32\drivers\etc\passwd `
"winuser02:x:1002:1002:redhat::"

# 例として グループ BUILTIN\Users ⇔ users をマッピング
PS C:\Users\Serverworld> Add-Content C:\Windows\System32\drivers\etc\group `
"BUILTIN\Users:x:100:users"

# 例として グループ BUILTIN\Users ⇔ debian をマッピング
PS C:\Users\Serverworld> Add-Content C:\Windows\System32\drivers\etc\group `
"BUILTIN\Users:x:1001:debian"

# 例として グループ BUILTIN\Users ⇔ redhat をマッピング
PS C:\Users\Serverworld> Add-Content C:\Windows\System32\drivers\etc\group `
"BUILTIN\Users:x:1002:redhat"
[3] 設定した各ユーザーがアクセスできるように、アクセス権の設定をしておきます。
# Windows NFS サーバーの場合 共有のルートフォルダーに Everyone の読み取り実行権を付与
PS C:\Users\Serverworld> icacls C:\nfsshare01 /grant "Everyone:(NP)(RX)" 
processed file: C:\nfsshare01
Successfully processed 1 files; Failed processing 0 files


# Windows / Linux どちらが NFS サーバーの場合でも 事前に各ユーザーがアクセスできる専用のフォルダーを作成

# Windows NFS サーバー
# * winuser01 ⇔ debian がアクセス可
PS C:\Users\Serverworld> mkdir C:\nfsshare01\winuser01 
PS C:\Users\Serverworld> icacls C:\nfsshare01\winuser01 /setowner winuser01 
processed file: C:\nfsshare01\winuser01
Successfully processed 1 files; Failed processing 0 files


# Linux NFS サーバー
# * winuser02 ⇔ redhat がアクセス可
root@dlp:~# mkdir /home/nfsshare/redhat 
root@dlp:~# chown redhat:redhat /home/nfsshare/redhat 
[4] Linux NFS クライアントから 設定したユーザーでログインして、Windows NFS サーバーへのマッピングの確認をします。
root@dlp:~# mount -t nfs 10.0.0.101:/nfsshare01 /mnt 
root@dlp:~# su - debian 

debian@dlp:~$ ll /mnt 
total 5
drwxr-xr-x  2 4294967294 4294967294   64 Dec  6 06:07 ./
drwxr-xr-x 23 root       root       4096 Apr 26  2024 ../
drwx------  2 debian     4294967294   64 Dec  6 06:07 winuser01/


debian@dlp:~$ echo test > /mnt/winuser01/testfile.txt 
debian@dlp:~$ ll /mnt/winuser01 
total 2
drwx------ 2 debian     4294967294 64 Dec  6 06:08 ./
drwxr-xr-x 2 4294967294 4294967294 64 Dec  6 06:07 ../
-rw-rw-r-- 1 debian     debian      5 Dec  6 06:08 testfile.txt
[5] Windows NFS クライアントから 設定したユーザーでサインインして、Linux NFS サーバーへのマッピングの確認をします。
PS C:\Users\winuser02> mount.exe 10.0.0.30:/home/nfsshare Z:\ 
PS C:\Users\winuser02> Get-ChildItem Z:\ 


    Directory: Z:\


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         12/5/2024   9:51 PM                redhat

PS C:\Users\winuser02> Add-Content Z:\redhat\testfile.txt "test file" 
PS C:\Users\winuser02> Get-ChildItem Z:\redhat 


    Directory: Z:\redhat


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         12/5/2024  10:10 PM             11 testfile.txt

PS C:\Users\winuser02> ssh redhat@10.0.0.30 "ls -l /home/nfsshare/redhat" 
redhat@10.0.0.30's password:
total 4
-rw-r--r-- 1 redhat redhat 11 Dec  6 06:10 testfile.txt
関連コンテンツ