samba関係コマンド
testparm
smb.confの構文ミスのチェック
pdbedit
-L | sambaユーザーの一覧表示 |
-a | sambaユーザーの追加 |
-x | sambaユーザーの削除 |
smbpasswd
-a | sambaユーザーの作成 |
-d | sambaユーザーの無効化 |
-e | sambaユーザーの有効化 |
-x | sambaユーザーの削除 |
※ただし、sambaユーザーはLinuxユーザーとして存在していなければ設定できないため、Linuxユーザーとして存在していないsambaユーザーを上記コマンドで作成しようとしても、作成できません。また、sambaは/etc/passwdを参照しないため、さらに「pdbedit」で、sambaにsambaユーザーを登録(追加)しなければならない。
smbstatus
sambaサーバーに接続されているクライアント(IPアドレス、ポート番号、クライアント名、グループ名など)、使用中の共有、ロックされているファイルを表示。
smbclient
オプション | 説明 | サブコマンド | 説明 | |
-L | リスト表示 | dir | ファイルリストの表示 | |
-N | 認証を行わない | exit | smbclientを終了 | |
-U ユーザー | ユーザー指定 | get ファイル | ファイルの取得 | |
mget ファイル | 複数ファイルをまとめて取得 | |||
サブコマンド | 説明 | mkdir ディレクトリ | ディレクトリの作成 | |
cd ディレクトリ | ディレクトリを移動 | mput ファイル | 複数ファイルをまとめてサーバに転送 | |
del ファイル | ファイルを削除 | lcd ディレクトリ | ローカル側のディレクトリを移動 | |
put ファイル | ファイルをサーバーに転送 | |||
rmdir ディレクトリ | ディレクトリの削除 |
smbclient -L 1.2.3.4 -N ホストに認証なしでログインし、共有リソースを一覧表示
samba設定の一連の流れ
設定
OS : UbuntuServer22.04 (IPアドレス:4.44.244.4) 共有フォルダ設置場所 : /var/samba/ 設置するフォルダ Linux内に作るフォルダ : 共有フォルダ名 public_folda : public aaa_folda : aaa bbb_folda : bbb sambaユーザー : pub(パスワードなし) aaa(パスワード:aaa) bbb(パスワード:bbb)
sambaインストール(Ubuntu)
$ sudo apt install samba
共有ファイルの作成
# sambaで使用するLinuxユーザーの作成(同時に同名のグループが作られる)
$ sudo useradd pub
$ sudo useradd aaa
$ sudo useradd bbb
# 共有するフォルダの作成
$ sudo mkdir -p /var/samba/{public_folda,aaa_folda,bbb_folda}
# 共有するフォルダの所有者を変更
$ sudo chown pub:pub /var/samba/public_folda
$ sudo chown aaa:aaa /var/samba/aaa_folda
$ sudo chown bbb:bbb /var/samba/bbb_folda
# 共有するフォルダのパーミッションを設定
$ sudo chmod 775 /var/samba/public_folda
$ sudo chmod 775 /var/samba/aaa_folda
$ sudo chmod 775 /var/samba/bbb_folda
sambaユーザーの作成
# Linuxユーザーの中から、sambaユーザーにするものを指定することになる。
# 最初はsambaユーザーがないため
$ sudo pdbedit -L ← sambaユーザーの一覧を表示
何も出てこない
$ sudo pdbedit -a pub ← パスワードの指定をする。pubは何も指定しない(2回Enter)。
$ sudo pdbedit -a aaa ← パスワードを「aaa」に指定。
$ sudo pdbedit -a bbb ← パスワードを「bbb」に指定。
sambaの設定(/etc/samba/smb.conf)
[global]
guest account = pub ← 左記を[global」直下に追記。
# 以下を最終行に追記
[public]
writable = yes
path = /var/samba/public_folda
create mask = 0664
directory mask = 0775
force user = pub
force group = pub
guest ok = yes
guest only = yes
[aaa]
security = user
writable = yes
path = /var/samba/aaa_folda
guest ok = no
read only = no
valid users = aaa
create mask = 0664
directory mask = 0775
force user = aaa
force group = aaa
[bbb]
security = user
writable = yes
path = /var/samba/bbb_folda
guest ok = no
read only = no
valid users = bbb
create mask = 0664
directory mask = 0775
force user = bbb
force group = bbb
設定のチェック等
# 書式が正しいかチェック
$ sudo testparm
何もエラーがなければOK
# sambaを再起動
$ sudo systemctl restart smbd.service
Windowsから共有フォルダへアクセス(aaaフォルダ)
エクスプローラーから直接共有フォルダへアクセス「\\4.44.244.4\aaa」と入力し、「Enter」を押下。
右図のような画面が出てきます。
ユーザー名「aaa」
パスワード「aaa」
「OK」を押下。
これで、「public」フォルダと「aaa」フォルダにアクセス可能となる。「bbb」フォルダは、アクセス権が異なるため、アクセス不可となります。
もしも、うまくアクセスができなかった場合は、LinuxとWindowsを再起動してからアクセスするとうまくいきます。(たぶん・・・・)
その他の設定
ホストのアクセス制限(hosts allow , hosts deny)
ルール
[global][homes][printers]それぞれの箇所で有効となる
「hosts allow」で許可、「hosts deny」で拒否を行う。
「hosts allow」にないホストは、自動的に拒否
「hosts deny」にないホストは、自動的に許可
「hosts allow」「hosts deny」競合の場合は、「hosts allow」優先
例示
hosts deny = 192.168.1.55, 192.168.1.56 → 192.168.1.55及び192.168.1.56を拒否
hosts allow = 192.168.11. → 192.168.11.0/24を許可
hosts allow = 192.168.100. except 192.168.100.200
→ 192.168.100.200を除く192.168.100.0/24を許可
参考文献
【第27回】ミニPCで作るSambaサーバー入門【Sambaサーバー構築編】
Ubuntu 22.04にsambaをインストールしてファイルサーバにする(Linuxユーザーのホームディレクトリを共有)
コメント