logo

SAMBAを使用してLinuxクライアントからWindowsサーバーにアクセスする方法 📂プログラミング

SAMBAを使用してLinuxクライアントからWindowsサーバーにアクセスする方法

概要

サンバsambaはWindowsとLinux間のファイル共有機能を提供するソフトウェアで、このポストではLinuxクライアント側からWindowsサーバに接続して共有ファイルにアクセスする方法について説明する。

ガイド

ウィンドウズ(サーバ) 1

Step 1. サンバ機能の有効化

alt text

alt text

alt text

‘コントロールパネル - プログラム - プログラムと機能 - Windowsの機能の有効化または無効化’で’SMB 1.0/CIFSファイル共有サポート’を見つけて有効にする。


Step 2. ディレクトリの共有

alt text

alt text

alt text

アクセスを許可するディレクトリのプロパティの’共有’タブで’詳細な共有-権限’をクリックし、グループまたはユーザー名にEveryoneを追加してすべての権限を許可する。この作業を行わないと、クライアント側から接続してファイルを読むことは可能だが、作成や削除はできない。

リナックス(クライアント) 2

Step 1. サンバクライアントの実行

sudo apt-get install -y samba-client cifs-utils

上記のコマンドを通じてサンバクライアントと共用インターネットファイルシステムCIFSに関するユーティリティをインストールする。

alt text

smbclient -L serverip -U username

serveripの位置に接続するサーバのアドレスを入力してサンバクライアントを実行する。例えばIPアドレスが192.68.0.0ならば、コマンドはsmbclient -L 192.68.0.0となる。次のような実行結果メッセージが出ることがあるが、Windowsサーバ側の共有フォルダーを正しく確認できれば、エラーではないので無視しても良い。

SMB1 disabled -- no workgroup available 

Step 2. マウント

sudo mount -t cifs -o username=xxxx,password=xxxx,dir_mode=0777,file_mode=0777,nounix //serverip/serverd clientd

サーバserveripの共有フォルダーserverdと接続したいLinux側のディレクトリclientdを作成した後、上記のコマンドを通じてマウントする。

  • -t cifs: ファイルシステムのタイプをcifsに指定する。
  • -o: オプションを指定する。
    • username=xxxx: Windowsサーバ側アカウントのユーザー名を指定する。
    • password=xxxx: Windowsサーバ側アカウントのパスワードを指定する。
    • dir_mode=0777: ディレクトリに対する権限を読み取り、書き込み、実行まで許可する。
    • file_mode=0777: ファイルに対する権限を読み取り、書き込み、実行まで許可する。
    • nounix: Unixシステムではないことを意味する。この場合はWindowsサーバを指す。
    • //serverip/serverd: サーバ側共有フォルダーのディレクトリ。最初は//で始まる。
    • clientd: クライアント側共有フォルダーのディレクトリ。

ここで特にdir_modefile_modeを気にしないと、せっかく共有フォルダーをマウントしても非常に限定された機能しか果たせないので注意すること3

alt text

上記スクリーンショットを再現できるコマンドの例は、パスワードxxxxを除き次の通り。

sudo mount -t cifs -o username=rmsms,password=xxxx,dir_mode=0777,file_mode=0777,nounix //sickgpu/g g

実際にWindowsサーバの共有フォルダーをLinuxクライアントがきちんと使えていることを確認できる。

alt text

環境

  • Windows11
  • Linux Mint 21.2 Cinamon v5.8.4