LinuxからWindows共有フォルダへアクセス

LinuxからWindowsの共有フォルダへアクセスする方法です。

Windows共有フォルダの設定

まずWindows側で共有フォルダを作成します。

どこか適当な場所に共有するフォルダを用意します。

ここでは「share」という名前のフォルダとします。

フォルダのプロパティを開いて、共有タブを選択します。

「共有」ボタンを押して共有する相手を選びます。

ここでEveryoneを選ぶと誰でもアクセスできるようになります。

他のOSなどから自分で利用するためだけの共有フォルダの場合は、このWindowsの所有者アカウントでログインして利用するので所有者だけが追加されていればいいです。

例えば、Windows上の仮想環境にあるLinuxなどのOSから共有フォルダを利用するなどです。

次に「詳細な共有」ボタンを押して詳細な共有画面を開きます。

「このフォルダーを共有する」にチェックを入れます。

そして、画面下の「アクセス許可」ボタンを押して共有アクセス許可の設定をします。

ユーザーを追加し、アクセス許可をフルコントロールにするとファイルの読み書き・作成削除ができるようになります。

これでWindows側のフォルダ共有設定ができました。

Linuxから共有フォルダへアクセスする

LinuxからアクセスするのにCIFSを使用します。

ここではUbuntuを使ってパッケージをインストールする例を記述します。

$ sudo apt install cifs-utils

これでcifsが利用できるようになったので、共有フォルダをマウントするディレクトリを用意します。

ここでは「/mnt/windows」ディレクトリを作成してマウントさせます。

$ sudo mkdir -p /mnt/windows

そして以下のコマンドでマウントします。

$ sudo mount -t cifs -o user=[Windowsユーザー名],password=[Windowsパスワード],uid=[Linuxのユーザー名] //[Windowsサーバー名 or IPアドレス]/[共有フォルダ名] /mnt/windows

Linuxのユーザー名を指定してマウント先のディレクトリとファイルの権限をユーザーに設定します。

マウント時のアクセス権を変更する場合はfile_modeやdir_modeオプションを使います。

コマンドに「file_mode=0777,dir_mode=0777」とアクセス権の設定を追加します。

デフォルトでマウント時は777のアクセス権が付与されていると思うので、それ以外のアクセス権を設定したい場合に使用します。

Windows側で「share」という名前でフォルダを共有しているので、例えば以下のようなコマンドでマウントします。

Windowsのユーザー名が「hoge」、パスワードが「foobar」、IPアドレスが「192.168.0.1」、共有フォルダ名が「share」、Linuxのユーザー名が「piyo」の場合

$ sudo mount -t cifs -o user=hoge,password=foobar,uid=piyo //192.168.0.1/share /mnt/windows

これで読み書き可能な共有フォルダをマウントします。

おまけ

ここでは記載しませんが、Linuxのディレクトリを共有してWindowsからアクセスすることもできます。

その場合はCIFSだけでなくSambaパッケージもインストールして行います。