Sambaの4.2.0リリースに伴い、3系列サポートが終了する、とのことなので、4.xに移行した。
顛末を記す。
Samba 3系列のサポート終了について
一応はソースを。
4.2.0のリリースノートに記載されている。
https://www.samba.org/samba/history/samba-4.2.0.html
With the final release of Samba 4.2, the last series of Samba 3 has been discontinued! People still running 3.6.x or earlier,should consider moving to a more recent and maintained version (4.0 – 4.2).
Samba 4について(Active DirectoryにしなくてもOK)
Samba 4はActive Directoryに対応しているが、従来のドメイン管理(NT4-style)もできる。
Active Directory対応の追加により、従来機能が差し替わることはないし、テストも続けられる。
なお、3から4へのアップデートで、自動的にActive Directoryへ変更されることはない。
移行先の選定(4.1にした)
どうせ移行するなら4.2がいいなと思ったんだけど、2015/4/28現在、4.2のports/packageはない。
しかたなく4.1にした。
移行にあたっての注意
4へのアップグレードにあたり注意すべきことは以下の三点である。
うっかりすると、マシン起動時にsambaが起動しなかったり、共有が消えたり、ユーザがアクセスできなくなったりする。あな恐ろし。
- rc.conf(マシン起動時のsamba起動設定)の書き換え
- samba設定ファイルの移行
- sambaユーザデータベースの移行
インストール(アップグレード)の流れ
全体の流れを示す。
- samba3を停める。
- samba3の削除
- samba4のインストール
- rc.confの書き換え
- 設定ファイルの移管
- ユーザーデータベースの移管
- 起動
Samba3の停止
アンインストールの前に。
なお、serviceコマンドで使うSambaの識別子は、3の”samba”が4では”samba_server”に変わる(後述)。
1 2 3 4 5 6 |
$ sudo service samba stop Stopping smbd. Waiting for PIDS: 654. Stopping nmbd. Waiting for PIDS: 651. |
Samba3の削除とSamba4のインストール
pkgならsamba4のインストール時にsamba3を削除してくれる。
samba4インストール後のメッセージは超重要。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
$ sudo pkg install samba41 (略) Conflicts with the existing packages have been found. One more solver iteration is needed to resolve them. The following 6 packages will be affected (of 0 checked): (nobwak注 samba3は自動的に削除される) Installed packages to be REMOVED: samba36-3.6.25 New packages to be INSTALLED: cyrus-sasl: 2.1.26_9 libinotify: 20140622 gamin: 0.1.10_8 ldb: 1.1.19_1 samba4: 4.1.17 (略) Message for samba4-4.1.17 : =============================================================================== How to start: http://wiki.samba.org/index.php/Samba4/HOWTO * Your configuration is: /usr/local/etc/smb4.conf * All the relevant databases are under: /var/db/samba4 * All the logs are under: /var/log/samba4 * Provisioning script is: /usr/local/bin/samba-tool (略) Bug reports should go to the: https://bugzilla.samba.org/ =============================================================================== |
rc.confの書き換え
本記事の手順上、rc.confの書き換えをここに記載しているが、本来は設定ファイルの正常性確認や検証を済ませてからのほうがよい。
sambaの3と4では、rc.confの書式が違う。
ここを忘れたままだと、serviceコマンドでのsambaサーバの操作ができないし、次回のマシン再起動時にsambaが自動起動しない。
samba3だと;
samba_enable=”YES”
samba4だと;
samba_server_enable=”YES”
したがって、rc.confは以下のようになる。
もちろん、samba3の方は、不要なら削除して構わない。
1 2 3 |
# samba_enable="YES" samba_server_enable="YES" |
設定ファイルの移管
sambaの3と4では、設定ファイルの場所は/usr/local/etc/の下で変更ないのだが、ファイル名が異なる。
気づかずにsamba4を起動すると共有フォルダが消える。
samba3だと;
smb.conf
samba4だと;
smb4.conf
samba3の書式はsamba4でも有効なので、コピーするかリンクを張る。
私はリンクにしておいた。
1 2 3 4 |
$ cd /usr/local/etc/ $ sudo ln -s ./smb.conf ./smb4.conf $ |
ユーザーデータベースの移管
samba向けのユーザデータベースも移管が必要である。
これをしないとユーザごとの認証ができない。
これには、ほとほと困らされた。
ユーザデータベースの置き場所は以下の通り。
samba3だと;
/usr/local/etc/samba/
samba4だと;
/var/db/samba4/private/
したがって、/var/db/samba4/privateとディレクトリを作成し、/usr/local/etc/samba/の下にあるファイルをコピーすればよい。
なお、samba4のユーザデータベース置き場をどう調べたかというと、ビルドオプションを表示させてPRIVATE_DIRを見た。
(こんなのすぐ分かるかよ!)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ smbd -b|less Build environment: Built by: root@101i386-default-job-07 Built on: Thu Apr 16 17:40:08 UTC 2015 Built using: cc Build host: FreeBSD 101i386-default-job-07 10.1-RELEASE-p9 FreeBSD 10.1-RELEASE-p9 i386 SRCDIR: /wrkdirs/usr/ports/net/samba41/work/samba-4.1.17/source3 BUILDDIR: /wrkdirs/usr/ports/net/samba41/work/samba-4.1.17/source3 Paths: SBINDIR: /usr/local/sbin BINDIR: /usr/local/bin CONFIGFILE: /usr/local/etc/smb4.conf LOGFILEBASE: /var/log/samba4 LMHOSTSFILE: /usr/local/etc/lmhosts LIBDIR: /usr/local/lib MODULESDIR: /usr/local/lib/shared-modules SHLIBEXT: so LOCKDIR: /var/db/samba4 STATEDIR: /var/db/samba4 CACHEDIR: /var/db/samba4 PIDDIR: /var/run/samba4 SMB_PASSWD_FILE: /var/db/samba4/private/smbpasswd PRIVATE_DIR: /var/db/samba4/private (以下略) |
起動
起動前にtestparmでsmb4.confのチェックをするのはいい習慣であります。
1 2 3 4 5 6 7 8 9 10 |
$ testparm Load smb config files from /usr/local/etc/smb4.conf Processing section "[fileshare]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] (略) |
では起動。
rc.confでsamba_server_enable=”YES”と記載しているなら、以下の通り。
1 2 3 4 5 6 7 |
$ sudo service samba_server start Performing sanity check on Samba configuration: OK Starting nmbd. Starting smbd. Starting winbindd. $ |
していないなら、以下のように「onestart」にする。
1 2 |
$ sudo service samba_server onestart |
以上。