LinuxおよびUNIXオペレーティングシステムでは、cifs
mount
オプションを使用して、ローカルディレクトリツリーの特定のマウントポイントにWindows共有をマウントすることができます。
CIFS(Common Internet File System)は、ネットワークファイル共有プロトコルです。
Installing CIFS Utilities Packages #
LinuxシステムでWindows共有をマウントするには、まずCIFSユーティリティパッケージをインストールする必要があります。
-
UbuntuとDebianにCIFSユーティリティをインストールする:
sudo apt update
sudo apt install cifs-utils
-
CentOSとFedoraにCIFSユーティリティをインストールする:
sudo apt update
sudo 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共有が正常にマウントされたことを確認するには、mount
df -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
セキュリティを向上させるために、共有のユーザー名、パスワード、およびドメインを含む資格情報ファイルを使用することをお勧めします。
資格情報ファイルは次のような形式になっています:
username=userpassword=passworddomain=domain
このファイルはユーザーが読めないようになっています。
sudo chown root: /etc/win-credentials
sudo 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_mode
file_mode
オプションを使用します。
sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
デフォルトのユーザーとグループの所有権は、uid
gid
のオプションで変更できます。
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
ファイルに次の行を追加します。
# <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では、mount
cifs
オプションを付けることで、Windowsの共有をマウントすることができます。