◆ samba で Linux のフォルダを Windows に共有する
◆ samba のインストール → smb を起動 → ユーザとパスワード設定
◆ これだけで使える 

久々に Linux 触りました
前に WinSCP とかで十分だからと Windows どうしのようにエクスプローラで \\ から始まるアドレスで Linux の共有フォルダにアクセスする方法は流してましたが 今回はそれをやってみます


ぐぐってみると 複雑そうに色々書いてるところとか よくわからないコマンドの説明を色々書いてるところとかばかりで分かりづらかったのでシンプルにまとめます

samba をインスト

Windows と共有できるようにするためには samba というソフトが必要です
sudo dnf install samba

smb を起動

samba をインストしたら systemctl で起動します
sudo systemctl start smb

httpd みたいに d はつかないです

これだけで Windows からアクセスができるようになります
普段は

smb01


こうなりますが smb を起動してると

smb02


おー 認証画面です

パスワード

いきなりパスワードを打ってログインしたいところですが このままではログインできません
samba 用のアカウントとパスワードを作ります
sudo smbpasswd -a USERNAME

パスワード変更なら
smbpasswd USERNAME

最初の登録だけ -a が必要です

登録したら認証画面で入力します


ドメインの入力もいるので Linux PC のホスト名も込み("linu-server" だとアカウント名は "linu-server\root" のように PC 名と \ を最初に入れます)で打ってたのですが いきなりユーザ名でも大丈夫でした
root
passwd
のような感じでおっけいです

共有フォルダ

ログインすると そのユーザのホームフォルダにだけアクセスできます
Windows でフォルダを右クリックして共有するみたいに 共有できるフォルダを増やしたいときは 設定ファイルに追加すればいいです

/etc/samba/smb.conf を編集します
最後の方にあるものを真似て
[share]
path = /usr/share_dir
public = yes
writable = yes
printable = no
のようなものを追加します

[share] の部分が共有名になります
共有するディレクトリのパスが path です


ルート(/) 自体を共有してしまえば
Windows で Linux の設定ファイルをいじれます

smb03


オプション

IP 制限とか色々できるようですが 今回はとりあえず読み書きできればいいのであまり詳しくは書かないです

ただ 見かけた説明ページで不要だったのを上げておきます

smb.conf のデフォルトのワークグループは MYGROUP になっています
Windows のデフォルトは WORKGROUP なのでこれに合わせないといけない という記事を見ましたが ここは全くいじらなくても共有できました

もうひとつ unix password sync = yes とすれば smbpasswd なしで Linux のユーザのパスワードを使いまわせると見たのですが これを設定しても Windows からの認証画面でログインはできませんでした
自分で smbpasswd をやる必要があるみたいです

その他

認証画面すら出ない場合は firewall とか selinux を切ってみてください

一時的にOFFにするコマンドです
sudo setenforce 0
sudo systemctl stop firewalld

Windows からログインしたあとで別のユーザに変更したいからログアウトしたいときは コマンドプロンプトで
net use \\PC名 /delete
と打ってログイン情報を削除します
フォルダを開いているならいったん閉じてから またアクセスすると認証画面が出て別ユーザでログインできます

ここまでの例に合わせれば PC 名のところはこうなります
net use \\192.168.1.5 /delete


samba はバージョンや種類がいっぱいあって もっと新しいコマンドもあって使える機能が多いようです
ですが 特にそんな機能が必要でもないので シンプルで覚えやすいこれで十分かと思います