/etc/samba/smb.conf にワークグループ名を設定する。
[global] # Windows側のワークグループ名と一致させます workgroup = WORKGROUP
Windows では全て大文字が普通なので合わせましょう。NetBIOSの仕様で、15文字以内の制限があります。
smb.conf の保存後、文法チェックしてサービスを再起動します。
$ testparm $ sudo systemctl restart smbd nmbd
smbpasswd コマンドを実行してユーザー名とパスワードを設定する。
$ sudo smbpasswd -a ユーザ名
管理者権限では pdbedit コマンドのほうが詳しい情報が出ます。
$ sudo pdbedit -a -u ユーザー名
ディストロによってサービス名が違ったりするので適時変更。smb/smbd はファイル共有機能で、nmb/nmbd は NetBIOS の名前解決機能のサービスです。
$ sudo systemctl start smb nmb
$ sudo systemctl start smbd nmbd
これで、Windows 側のマイネットワークから共有したユーザのホームディレクトリに接続できる。(パスワードの入力が必要)
立ち上がったら、電源投入時に自動起動する設定もしておきましょう。
$ sudo systemctl enable smb nmb
$ sudo systemctl enable smbd nmbd
まずマウント用のツール(cifs-utils)をインストールします。cifs というのは大昔のプロトコルと同じ名前ですが、実際には SMB3.x など今どきのプロトコルでマウントします。
$ sudo dnf install cifs-utils
$ sudo apt install cifs-utils
マウント用コマンドの書式は以下のようになります。
$ sudo mount -t cifs //【WindowsのIPアドレス】/【共有フォルダ名】 【Linux側のマウント先】 -o username=【Windowsのユーザー名】,password=【Windowsのパスワード】
デフォルトではマウントしたファイルの所有者が root なので、一般ユーザーが書き込めません。自分のLinuxユーザー(例: uidが1000)で読み書きしたい場合は以下を追加指定します。
uid=1000,gid=1000,file_mode=0777,dir_mode=0777
ユーザー名にメールアドレスを指定します。
[email protected],password=xxx
メニューバーの[移動]>[サーバへ接続]で、表示させたダイアログに以下を入力し[接続]をクリック。
smb://IPアドレス(もしくはサーバ名)/共有ディレクトリ等
ユーザー種類で「登録ユーザー」を選択し、Linux 側の Samba に登録したユーザー名等を入力。それだけです。
現在の SMB プロトコルでは文字コードが UTF-8 になったので、共有相手が Windows の場合は、文字化けはほぼ起きなくなりました。環境が混在している場合は、おまじないとして mount コマンドのオプションに iocharset=utf8 を追加すると良いかもしれません。
共有相手が Mac の場合、Mac の UTF-8 は濁点と半濁点を別の文字コードから合成する仕様なので、文字化けが発生することがあります(いわゆる NFD 問題)。最近の Mac と Samba4 との組み合わせでは自動変換されますが、以前の文字化け対策の fruit モジュールが最近は文字化けを起こす場合があるので、いったん外してみることで解決するかもしれません。
# 古い設定の残り(Samba4では不要) vfs objects = catia fruit streams_xattr
Mac から Linux に接続すると、Apple 拡張機能によって、フォルダ内にドットファイル(.DS_Store や ._ファイル名)が生成されることがあります。/etc/samba/smb.conf に以下を追記して文字化けを防ぐことができます。
veto files = /._*/.DS_Store/ delete veto files = yes