Show Table of Contents
SMB 共有が
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
9.2. SMB 共有のマウント
Red Hat Enterprise Linux では、カーネルの
cifs.ko
ファイルシステムモジュールにより、SMB プロトコルを利用できます。ただし、SMB 共有をマウントして作業を行うには、cifs-utils パッケージをインストールする必要があります。
#
yum install cifs-utils
cifs-utils パッケージでは、以下を行うためのユーティリティを利用できます。
- SMB と CIFS 共有をマウントする
- カーネルのキーリングで NT Lan Manager (NTLM) の認証情報を管理する
- SMB および CIFS 共有のセキュリティー記述子でアクセス制御リスト (ACL) を設定し、表示する
9.2.1. サポートされている SMB プロトコルバージョン
cifs.ko
カーネルモジュールは、以下の SMB プロトコルバージョンに対応しています。
- SMB 1
- SMB 2.0
- SMB 2.1
- SMB 3.0
注記
プロトコルのバージョンにより、すべての SMB 機能が実装されているわけではありません。
9.2.1.1. UNIX 拡張機能のサポート
Samba は、SMB プロトコルの
CAP_UNIX
機能ビットを使用して UNIX 拡張機能を提供します。これらの拡張機能は cifs.ko
カーネルモジュールでもサポートされています。ただし、Samba とカーネルモジュールはどちらも、SMB 1 プロトコルでのみ UNIX 拡張機能をサポートしています。
UNIX 拡張機能を使用するには、以下の手順を実行します。
/etc/samba/smb.conf
ファイルの[global]
セクションにあるserver min protocol
オプションをNT1
に設定します。これは Samba サーバーのデフォルトです。mount
コマンドに-o vers=1.0
オプションを指定し、SMB 1 プロトコルを使用して共有をマウントします。たとえば、次のようになります。mount -t cifs -o vers=1.0,username=user_name //server_name/share_name /mnt/
デフォルトで、カーネルモジュールは SMB 2 またはサーバーでサポートされている最新のプロトコルバージョンを使用します。-o vers=1.0
オプションをmount
コマンドに渡すと、カーネルモジュールは UNIX 拡張機能の使用に必要な SMB 1 プロトコルを使用することを強制されます。
UNIX 拡張機能が有効になっているかどうかを確認するには、マウントされた共有のオプションを表示します。
#
mount
... //server/share on /mnt type cifs (...,unix,...)
マウントオプションの一覧に
unix
エントリーが表示されている場合は、UNIX 拡張機能が有効になっています。
9.2.2. SMB 共有の手動マウント
SMB 共有を手動でマウントするには、
-t cifs
パラメーターで mount
ユーティリティを使用します。
# mount -t cifs -o username=user_name //server_name/share_name /mnt/ Password for user_name@//server_name/share_name: ********
I
-o オプション
パラメーターでは、共有のマウントに使用されるオプションを指定できます。詳細は、mount.cifs(8) man ページの 「よく使用されるマウントオプション」 と 『OPTIONS』 のセクションを参照してください。
例9.1 暗号化された SMB 3.0 接続を使用した共有のマウント
\\server\example\
共有を DOMAIN\Administrator
ユーザーとして、暗号化 SMB 3.0 接続から /mnt/
ディレクトリーにマウントするには以下を実行します。
# mount -t cifs -o username=DOMAIN\Administrator,seal,vers=3.0 //server/example /mnt/ Password for user_name@//server_name/share_name: ********
9.2.3. システム起動時の SMB 共有の自動マウント
システムの起動時に SMB 共有を自動的にマウントするには、共有のエントリーを
/etc/fstab
ファイルに追加します。たとえば、次のようになります。
//server_name/share_name /mnt cifs credentials=/root/smb.cred 0 0
重要
システムが自動的に共有をマウントできるようにするには、ユーザー名、パスワード、およびドメイン名を認証情報ファイルに保存する必要があります。詳細は、「認証情報ファイルを使用した SMB 共有への認証」を参照してください。
/etc/fstab
ファイルの 4 番目のフィールドでは、認証情報ファイルへのパスなど、マウントオプションを指定します。詳細は、mount.cifs(8) man ページの 「よく使用されるマウントオプション」 と 『OPTIONS』 のセクションを参照してください。
共有が正常にマウントされたことを確認するには、次のように入力します。
#
mount /mnt/
9.2.4. 認証情報ファイルを使用した SMB 共有への認証
特定の状況では、管理者がユーザー名とパスワードを入力せずに共有をマウントする必要があります。この場合、認証情報ファイルを作成します。例:
手順9.1 認証情報ファイルの作成
~/smb.cred
などのファイルを作成し、そのファイルのユーザー名、パスワード、およびドメイン名を指定します。username=user_name password=password domain=domain_name
- 所有者だけがファイルにアクセスできるようにパーミッションを設定します。
#
chown user_name ~/smb.cred
#
chmod 600 ~/smb.cred
mount
ユーティリティーに credentials=file_name
マウントオプションを渡すか、/etc/fstab
ファイルでオプションを使用して、ユーザー名とパスワードの入力を求められずに共有をマウントできるようになります。
9.2.5. マルチユーザー SMB マウントの実行
共有をマウントするために指定した認証情報により、デフォルトでマウントポイントのアクセス権が決まります。たとえば、共有をマウントするときに
DOMAIN\example
ユーザーを使用した場合は、どのローカルユーザーが操作を実行しても、共有に対するすべての操作はこのユーザーとして実行されます。
ただし特定の状況では、システムの起動時に管理者が自動的に共有をマウントしたい場合でも、ユーザーは自分の認証情報を使用して共有のコンテンツに対して操作を実行する必要があります。そんなとき
multiuser
マウントオプションを使用すると、このシナリオを設定できます。
重要
multiuser
を使用するには、sec=security_type
マウントオプションを、認証ファイルとともに krb5
または ntlmssp
オプションなど、非対話型の方法で認証情報を与えることのできるセキュリティタイプに設定する必要があります。「ユーザーとしての共有へのアクセス」 を参照してください。
root
ユーザーは、multiuser
オプションと共有の内容への最低限のアクセスを持つアカウントを使用して、共有をマウントします。通常のユーザーは、cifscreds
ユーティリティーを使用して、現在のセッションのカーネルキーリングに自分のユーザー名とパスワードを渡すことができます。ユーザーがマウントされた共有のコンテンツにアクセスすると、カーネルは、共有のマウントに最初に使用されたものではなく、カーネルキーリングからの認証情報を使用します。
multiuser
オプションによる共有のマウント
システムの起動時に、
multiuser
オプションを使用して自動的に共有をマウントするには、次の手順を実行します。
手順9.2 multiuser
オプションによる /etc/fstab
ファイルエントリーの作成
/etc/fstab
ファイルに共有のエントリーを作成します。たとえば、次のようになります。//server_name/share_name /mnt cifs multiuser,sec=ntlmssp,credentials=/root/smb.cred 0 0
- 共有をマウントします。
#
mount /mnt/
システムの起動時に共有を自動的にマウントしない場合は、
-o multiuser,sec=security_type
を mount
コマンドに渡して手動で共有をマウントします。SMB 共有の手動マウントの詳細は、「SMB 共有の手動マウント」 を参照してください。
SMB 共有が multiuser
オプションを使用してマウントされているかどうかの確認
共有が
multiuser
オプションでマウントされているかどうかを確認するには:
#
mount
... //server_name/share_name on /mnt type cifs (sec=ntlmssp,multiuser,...)
ユーザーとしての共有へのアクセス
SMB 共有が
multiuser
オプションを使用してマウントされている場合、ユーザーはサーバーの認証情報をカーネルのキーリングに提供できます。
#
cifscreds add -u SMB_user_name server_name
Password: ********
これで、ユーザーがマウントされた SMB 共有を含むディレクトリーで操作を実行すると、サーバーは、共有がマウントされたときに最初に使用されたものではなく、このユーザーのファイルシステムのパーミッションが適用されます。
注記
複数のユーザーが、マウントされた共有上で自分の認証情報を使用して同時に操作を実行できます。
9.2.6. よく使用されるマウントオプション
SMB 共有をマウントすると、マウントオプションにより次のことが決まります。
- サーバーとの接続がどのように確立されるか。たとえば、サーバーに接続するときに使用される SMB プロトコルバージョンはどれか。
- 共有がローカルファイルシステムにどのようにマウントされるか。たとえば、複数のローカルユーザーがサーバー上のコンテンツにアクセスできるようにするために、システムがリモートファイルとディレクトリーのパーミッションを上書きする場合など。
/etc/fstab
ファイルの 4 番目のフィールドまたは mount
コマンドの -o
パラメーターで複数のオプションを設定するには、それらをカンマで区切ります。たとえば、手順9.2「multiuser
オプションによる /etc/fstab
ファイルエントリーの作成」 を参照してください。
次のリストは、よく使用されるマウントオプションの概要を示しています。
表9.1 よく使用されるマウントオプション
オプション | 説明 |
---|---|
credentials=file_name | 認証情報ファイルへのパスを設定します。 「認証情報ファイルを使用した SMB 共有への認証」 を参照してください。 |
dir_mode=mode | サーバーが CIFS UNIX 拡張機能をサポートしていない場合は、ディレクトリーモードを設定します。 |
file_mode=mode | サーバーが CIFS UNIX 拡張機能をサポートしていない場合は、ファイルモードを設定します。 |
password=password | SMB サーバーへの認証に使用されるパスワードを設定します。あるいは、credentials オプションを使用して認証情報ファイルを指定します。 |
seal | SMB 3.0 またはそれ以降のプロトコルバージョンを使用して接続の暗号化サポートを有効化します。よって、vers を 3.0 またはそれ以降に指定して、seal を使用します。 例9.1「暗号化された SMB 3.0 接続を使用した共有のマウント」 を参照してください。 |
sec=security_mode | ntlmsspi などのセキュリティーモードを設定して、NTLMv2 パスワードハッシュとパケット署名を有効にします。使用できる値のリストは、mount.cifs(8) man ページにあるオプションの説明を参照してください。
サーバーが
ntlmv2 セキュリティモードに対応していない場合は、デフォルトの sec=ntlmssp を使用します。セキュリティ上の理由から、安全でない ntlm セキュリティモードは使用しないでください。
|
username=user_name | SMB サーバーへの認証に使用されるユーザー名を設定します。あるいは、credentials オプションを使用して認証情報ファイルを指定します。 |
vers=SMB_protocol_version | サーバーとの通信に使用される SMB プロトコルバージョンを設定します。 |
完全な一覧は、mount.cifs(8) man ページの 『OPTIONS』 セクションを参照してください。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。