SAMBAを使用してLinuxクライアントからWindowsサーバーにアクセスする方法
概要
サンバsambaはWindowsとLinux間のファイル共有機能を提供するソフトウェアで、このポストではLinuxクライアント側からWindowsサーバに接続して共有ファイルにアクセスする方法について説明する。
ガイド
ウィンドウズ(サーバ) 1
Step 1. サンバ機能の有効化



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



アクセスを許可するディレクトリのプロパティの’共有’タブで’詳細な共有-権限’をクリックし、グループまたはユーザー名にEveryoneを追加してすべての権限を許可する。この作業を行わないと、クライアント側から接続してファイルを読むことは可能だが、作成や削除はできない。
リナックス(クライアント) 2
Step 1. サンバクライアントの実行
sudo apt-get install -y samba-client cifs-utils
上記のコマンドを通じてサンバクライアントと共用インターネットファイルシステムCIFSに関するユーティリティをインストールする。

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_modeとfile_modeを気にしないと、せっかく共有フォルダーをマウントしても非常に限定された機能しか果たせないので注意すること3。

上記スクリーンショットを再現できるコマンドの例は、パスワードxxxxを除き次の通り。
sudo mount -t cifs -o username=rmsms,password=xxxx,dir_mode=0777,file_mode=0777,nounix //sickgpu/g g
実際にWindowsサーバの共有フォルダーをLinuxクライアントがきちんと使えていることを確認できる。

環境
- Windows11
- Linux Mint 21.2 Cinamon v5.8.4
