Articles

How to Mount Windows Share on Linux using CIFS

Posted on

LinuxおよびUNIXオペレーティングシステムでは、cifsmountオプションを使用して、ローカルディレクトリツリーの特定のマウントポイントにWindows共有をマウントすることができます。

CIFS(Common Internet File System)は、ネットワークファイル共有プロトコルです。

Installing CIFS Utilities Packages #

LinuxシステムでWindows共有をマウントするには、まずCIFSユーティリティパッケージをインストールする必要があります。

  • UbuntuとDebianにCIFSユーティリティをインストールする:

    sudo apt updatesudo apt install cifs-utils
  • CentOSとFedoraにCIFSユーティリティをインストールする:

    sudo apt updatesudo apt install cifs-utils
  • CentOSとFedoraにCIFSユーティリティをインストールする。

    sudo dnf install cifs-utils

パッケージ名は、Linuxディストリビューションによって異なる場合があります。

CIFS Windows 共有のマウント #

リモート Windows 共有のマウントは、通常のファイルシステムのマウントと同様です。

まず、リモートWindows共有のマウントポイントとなるディレクトリを作成します。

sudo mkdir /mnt/win_share

rootまたはsudoprivilegesを持つユーザーとして以下のコマンドを実行し、共有をマウントします。

sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share

パスワードの入力を求められます:

Password:

成功しても何も出力されません。

リモートWindows共有が正常にマウントされたことを確認するには、mountdf -hコマンドを使用します。

共有がマウントされると、マウントポイントはマウントされたファイルシステムのルートディレクトリになります。 リモートファイルをあたかもローカルファイルのように扱うことができます。

パスワードは、コマンド ラインで指定することもできます:

sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share

ユーザーが Windows ワークグループまたはドメインに属している場合は、次のように設定できます:

sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share

セキュリティを向上させるために、共有のユーザー名、パスワード、およびドメインを含む資格情報ファイルを使用することをお勧めします。

資格情報ファイルは次のような形式になっています:

/etc/win-credentials
username=userpassword=passworddomain=domain

このファイルはユーザーが読めないようになっています。

sudo chown root: /etc/win-credentialssudo chmod 600 /etc/win-credentials

資格情報ファイルを使用するには、次のように定義します。

sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share

デフォルトでは、マウントされた共有の所有者はrootで、パーミッションは777に設定されています。

ディレクトリのパーミッションを設定するには dir_modefile_mode オプションを使用します。

sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share

デフォルトのユーザーとグループの所有権は、uidgidのオプションで変更できます。

sudo mount -t cifs -o credentials=/etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share

追加のオプションを設定するには、-oオプションの後にコンマで区切ったリストとして追加します。

自動マウント #

mount コマンドを使用して共有を手動でマウントした場合、再起動しても共有は保持されません。

/etc/fstab ファイルには、システムの起動時にどこでどのようにファイルシステムをマウントするかを定義するエントリのリストが含まれています。

Linux システムの起動時に Windows 共有を自動的にマウントするには、/etc/fstab ファイルでマウントを定義します。 この行には、Windows PCのホスト名またはIPアドレス、共有名、ローカルマシンのマウントポイントを記述する必要があります。

テキスト エディターで /etc/fstab ファイルを開きます:

sudo nano /etc/fstab

ファイルに次の行を追加します。

/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass>//WIN_SHARE_IP/share_name /mnt/win_share cifs credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0 0

以下のコマンドを実行して、共有をマウントします。

sudo mount /mnt/win_share

mount/etc/fstab の内容を読み込んで、共有をマウントします。

次回システムを再起動すると、Windows共有が自動的にマウントされます。

Windows共有のアンマウント #

umountコマンドは、マウントされたファイルシステムをディレクトリツリーから切り離す(アンマウントする)ものです。

マウントされたWindows共有を解除するには、umountコマンドに続いて、マウントされたディレクトリまたはリモート共有のいずれかを使用します:

sudo umount /mnt/win_share

CIFSマウントにfstabファイルのエントリがある場合、それを削除します。

umount コマンドは、共有が使用されている場合、その切り離しに失敗します。 どのプロセスが Windows 共有にアクセスしているかを調べるには、fuserコマンドを使用します:

fuser -m MOUNT_POINT

プロセスが見つかったら、killコマンドでプロセスを停止し、共有をアンマウントします。

それでも共有のアンマウントに問題がある場合は、-l--lazy)オプションを使用すると、ビジー状態のファイルシステムがビジーでなくなった時点でアンマウントすることができます。

sudo umount -l MOUNT_POINT

結論 #

Linuxでは、mountcifsオプションを付けることで、Windowsの共有をマウントすることができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です