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"に変わる(後述)。
$ sudo service samba stop
Stopping smbd.
Waiting for PIDS: 654.
Stopping nmbd.
Waiting for PIDS: 651.
Samba3の削除とSamba4のインストール
pkgならsamba4のインストール時にsamba3を削除してくれる。
samba4インストール後のメッセージは超重要。
$ 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の方は、不要なら削除して構わない。
# samba_enable="YES"
samba_server_enable="YES"
設定ファイルの移管
sambaの3と4では、設定ファイルの場所は/usr/local/etc/の下で変更ないのだが、ファイル名が異なる。
気づかずにsamba4を起動すると共有フォルダが消える。
samba3だと;
smb.conf
samba4だと;
smb4.conf
samba3の書式はsamba4でも有効なので、コピーするかリンクを張る。
私はリンクにしておいた。
$ 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を見た。
(こんなのすぐ分かるかよ!)
$ 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のチェックをするのはいい習慣であります。
$ 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"と記載しているなら、以下の通り。
$ sudo service samba_server start
Performing sanity check on Samba configuration: OK
Starting nmbd.
Starting smbd.
Starting winbindd.
$
していないなら、以下のように「onestart」にする。
$ sudo service samba_server onestart
以上。