![見出し画像](https://assets.st-note.com/production/uploads/images/108420903/rectangle_large_type_2_56890f5265f99d45b6a5a0f82ca64142.png?width=1200)
392.3 Sambaの保守
主題392:Sambaの基礎
392.3 Sambaの保守
LinuC300の試験範囲である主題390~397まであるうちの「主題392:Sambaの基礎」から「392.3 Sambaの保守」についてのまとめ
重要度:2
説明:
Sambaのインストールに含まれている各種ツールおよびユーティリティについて知っていること。主要な知識範囲
- 稼働中のSamba デーモンの監視および操作
- Samba設定および状態に関するデータの定期的なバックアップを行う重要なファイル、用語、ユーティリティ:
- smbcontrol
- smbstatus
- tdbbackup
(補足)
Sambaユーザーは事前に作成されています。
(別記事 Appendix (準備その4)ユーザーを作成する 参照)
稼働中のSamba デーモンの監視および操作
~smbcontrolコマンド~
smbcontrolコマンドはSambaプロセス(smbd、nmbd、winbindd)に対してメッセージを送信するコマンドである。
all を指定するとすべてのSambaプロセスにまとめてメッセージを送信できる。
メッセージには debug、ping、reload-config、shutdown などがある。
debug:デバッグレベルを変更する
debuglevel:デバッグレベルを確認する
0~10 の範囲で一時的に変更できる。
デバッグクラスを指定しなかった場合はすべてのデバッグクラスが変更される。
特定のデバッグクラスのみ変えることもできる。
★ デバッグレベルを確認 ★
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol smbd debuglevel
PID 3325: all:2 tdb:2 printdrivers:2 lanman:2 smb:2 rpc_parse:2 rpc_srv:2 rpc_cli:2 passdb:2 sam:2 auth:2 winbind:2 vfs:2 idmap:2 quota:2 acls:2 locking:2 msdfs:2 dmapi:2 registry:2
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol nmbd debuglevel
PID 3327: all:2 tdb:2 printdrivers:2 lanman:2 smb:2 rpc_parse:2 rpc_srv:2 rpc_cli:2 passdb:2 sam:2 auth:2 winbind:2 vfs:2 idmap:2 quota:2 acls:2 locking:2 msdfs:2 dmapi:2 registry:2
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol winbindd debuglevel
PID 3322: all:2 tdb:2 printdrivers:2 lanman:2 smb:2 rpc_parse:2 rpc_srv:2 rpc_cli:2 passdb:2 sam:2 auth:2 winbind:2 vfs:2 idmap:2 quota:2 acls:2 locking:2 msdfs:2 dmapi:2 registry:2
[root@rocky9-samba31 ~]#
★ smbdのすべてのデバッグクラスのデバッグレベルを変更する ★
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol smbd debug 5
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol smbd debuglevel
PID 3325: all:5 tdb:5 printdrivers:5 lanman:5 smb:5 rpc_parse:5 rpc_srv:5 rpc_cli:5 passdb:5 sam:5 auth:5 winbind:5 vfs:5 idmap:5 quota:5 acls:5 locking:5 msdfs:5 dmapi:5 registry:5
[root@rocky9-samba31 ~]#
★ smbdの特定のデバッグクラスだけデバッグレベルを変更する ★
tdbクラスだけ 10 にして、それ以外のクラスは 2 とする
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol smbd debug "2 tdb:10"
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol smbd debuglevel
PID 3325: all:2 tdb:10 printdrivers:2 lanman:2 smb:2 rpc_parse:2 rpc_srv:2 rpc_cli:2 passdb:2 sam:2 auth:2 winbind:2 vfs:2 idmap:2 quota:2 acls:2 locking:2 msdfs:2 dmapi:2 registry:2
[root@rocky9-samba31 ~]#
ping:プロセスが動作しているか確認する
★ smbd ★
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol smbd ping
PONG from pid 673
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ps -aef | grep 673
root 673 1 0 21:11 ? 00:00:00 /usr/local/samba/sbin/smbd -D
root 677 673 0 21:11 ? 00:00:00 /usr/local/samba/sbin/smbd -D
[root@rocky9-samba31 ~]#
★ nmbd ★
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol nmbd ping
PONG from pid 675
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ps -aef | grep 675
root 675 1 0 21:11 ? 00:00:00 /usr/local/samba/sbin/nmbd -D
[root@rocky9-samba31 ~]#
★ winbindd ★
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol winbindd ping
PONG from pid 713
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ps -aef | grep 713
root 713 1 0 21:20 ? 00:00:00 /usr/local/samba/sbin/winbindd -D
root 714 713 0 21:20 ? 00:00:00 /usr/local/samba/sbin/winbindd -D
[root@rocky9-samba31 ~]#
★ all ★
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol all ping
PONG from pid 675
PONG from pid 713
PONG from pid 677
PONG from pid 673
[root@rocky9-samba31 ~]#
reload-config:プロセスを停止することなく設定を再読み込みする
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol smbd reload-config
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol nmbd reload-config
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol winbindd reload-config
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol all reload-config
[root@rocky9-samba31 ~]#
shutdown:プロセスを停止させる
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol all ping
PONG from pid 675
PONG from pid 713
PONG from pid 677
PONG from pid 673
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol all shutdown
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbcontrol all ping
No replies received
[root@rocky9-samba31 ~]#
~smbstatusコマンド~
Sambaサーバーの状態を確認することができる。
-b | --brief:簡単な出力を表示する。
[root@rocky9-samba31 ~]# smbstatus -b
Samba version 3.6.25
PID Username Group Machine
-------------------------------------------------------------------
349 user00 user00 sakuzo-win10 (192.168.56.1)
[root@rocky9-samba31 ~]#
-d | --debuglevel=level:デバッグレベルを変更する。
smb.confの log level の指定よりも優先される。
[root@rocky9-samba31 ~]# smbstatus -d
Samba version 3.6.25
PID Username Group Machine
-------------------------------------------------------------------
349 user00 user00 sakuzo-win10 (192.168.56.1)
Service pid machine Connected at
-------------------------------------------------------
IPC$ 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
share1 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
[root@rocky9-samba31 ~]#
-j | --json:(Samba4のみ)より詳細な情報を、人が読みやすい形の代わりに JSON 形式で出力する。
-L | --locks:ロックのリストだけを表示する。
[root@rocky9-samba31 ~]# smbstatus -L
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
[root@rocky9-samba31 ~]#
-p | --processes :プロセスの一覧を表示する。
[root@rocky9-samba31 ~]# smbstatus -p
Samba version 3.6.25
PID Username Group Machine
-------------------------------------------------------------------
349 user00 user00 sakuzo-win10 (192.168.56.1)
[root@rocky9-samba31 ~]#
-S | --shares:接続の一覧だけを表示する。
[root@rocky9-samba31 ~]# smbstatus -S
Service pid machine Connected at
-------------------------------------------------------
IPC$ 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
share1 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
[root@rocky9-samba31 ~]#
--debug-stdout:(Samba4のみ)デバッグ出力を標準出力にリダイレクトする
-u | --user=<username>:username で 指定したユーザーに関する情報だけを表示する。
[root@rocky9-samba31 ~]# smbstatus -u user00
Samba version 3.6.25
PID Username Group Machine
-------------------------------------------------------------------
349 user00 user00 sakuzo-win10 (192.168.56.1)
Service pid machine Connected at
-------------------------------------------------------
IPC$ 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
share1 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
[root@rocky9-samba31 ~]#
-v | --verbose:詳細な出力を表示する。
[root@rocky9-samba31 ~]# smbstatus -v
using configfile = /usr/local/samba/lib/smb.conf
Samba version 3.6.25
PID Username Group Machine
-------------------------------------------------------------------
349 user00 user00 sakuzo-win10 (192.168.56.1)
Opened /usr/local/samba/var/locks/connections.tdb
Service pid machine Connected at
-------------------------------------------------------
IPC$ 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
share1 349 sakuzo-win10 Mon Jun 5 22:29:46 2023
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
349 1000 DENY_NONE 0x81 RDONLY NONE /var/samba_share/share1 . Mon Jun 5 22:29:47 2023
[root@rocky9-samba31 ~]#
Samba設定および状態に関するデータの定期的なバックアップを行う
~tdbbackup~
※Samba4では tdb-tools というパッケージをインストールする必要がある。
※samba_backupを使うという情報もあるがSamba4.10で削除されsamba-toolに置き換えられているようです。
★ Samba3の場合★
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# tdbbackup
Usage: tdbbackup [options] <fname...>
-h this help message
-s suffix set the backup suffix
-v verify mode (restore if corrupt)
-n hashsize set the new hash size for the backup
[root@rocky9-samba31 ~]#
★ Samba4の場合 ★
[root@rocky9-samba41 ~]#
[root@rocky9-samba41 ~]# dnf install tdb-tools
[root@rocky9-samba41 ~]#
[root@rocky9-samba41 ~]# tdbbackup
Usage: tdbbackup [options] <fname...>
-h this help message
-s suffix set the backup suffix
-v verify mode (restore if corrupt)
-n hashsize set the new hash size for the backup
-l open without locking to back up mutex dbs
-r open with read only locking
[root@rocky9-samba41 ~]#
バックアップを取る
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbd -b | grep PRIVATE
PRIVATE_DIR: /usr/local/samba/private
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -l /usr/local/samba/private/
合計 3
-rw------- 1 root root 16384 5月 26 23:09 passdb.tdb
-rw------- 1 root root 45056 5月 31 22:30 secrets.tdb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# tdbbackup /usr/local/samba/private/passdb.tdb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -l /usr/local/samba/private/
合計 4
-rw------- 1 root root 16384 5月 26 23:09 passdb.tdb <--- バックアップ元
-rw------- 1 root root 8192 6月 3 00:58 passdb.tdb.bak <--- バックアップ先
-rw------- 1 root root 45056 5月 31 22:30 secrets.tdb
[root@rocky9-samba31 ~]#
-v:整合性を確認する
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# tdbbackup -v /usr/local/samba/private/passdb.tdb.bak
/usr/local/samba/private/passdb.tdb.bak : 3 records
[root@rocky9-samba31 ~]#
-s <suffix>:文字を付加する
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# tdbbackup -s .hoge /usr/local/samba/private/passdb.tdb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# ls -l /usr/local/samba/private/
合計 5
-rw------- 1 root root 16384 5月 26 23:09 passdb.tdb
-rw------- 1 root root 8192 6月 3 00:58 passdb.tdb.bak
-rw------- 1 root root 8192 6月 3 01:02 passdb.tdb.hoge <--- suffixで指定した文字が付加された
-rw------- 1 root root 45056 5月 31 22:30 secrets.tdb
[root@rocky9-samba31 ~]#
~各種TDBファイル~
TDBファイルはユーザー情報だけでなく様々な情報を格納するのに利用されている。
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# find /usr/local/samba/ -type f -name "*.tdb"
/usr/local/samba/var/locks/mutex.tdb
/usr/local/samba/var/locks/gencache_notrans.tdb
/usr/local/samba/var/locks/sessionid.tdb
/usr/local/samba/var/locks/locking.tdb
/usr/local/samba/var/locks/notify.tdb
/usr/local/samba/var/locks/brlock.tdb
/usr/local/samba/var/locks/account_policy.tdb
/usr/local/samba/var/locks/printing/printers.tdb
/usr/local/samba/var/locks/messages.tdb
/usr/local/samba/var/locks/winbindd_cache.tdb
/usr/local/samba/var/locks/gencache.tdb
/usr/local/samba/var/locks/registry.tdb
/usr/local/samba/var/locks/serverid.tdb
/usr/local/samba/var/locks/printer_list.tdb
/usr/local/samba/var/locks/notify_onelevel.tdb
/usr/local/samba/var/locks/group_mapping.tdb
/usr/local/samba/var/locks/connections.tdb
/usr/local/samba/var/locks/netsamlogon_cache.tdb
/usr/local/samba/var/locks/share_info.tdb
/usr/local/samba/private/passdb.tdb
/usr/local/samba/private/secrets.tdb
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# testparm -sv | grep "/usr/local/samba/var/locks"
:
lock directory = /usr/local/samba/var/locks
state directory = /usr/local/samba/var/locks
cache directory = /usr/local/samba/var/locks
pid directory = /usr/local/samba/var/locks
:
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# testparm -sv | grep "/usr/local/samba/private"
:
private dir = /usr/local/samba/private
:
[root@rocky9-samba31 ~]#
[root@rocky9-samba31 ~]# smbd -b | grep DIR
:
LOCKDIR: /usr/local/samba/var/locks
STATEDIR: /usr/local/samba/var/locks
CACHEDIR: /usr/local/samba/var/locks
PIDDIR: /usr/local/samba/var/locks
PRIVATE_DIR: /usr/local/samba/private
:
[root@rocky9-samba31 ~]#