Raspberry Pi 3 Model B+ 上の OpenBSD 7.0 環境にディスク (USB 接続の SATA HDD) の増設と Samba をインストールする手順です。
Samba の基本的な設定変更までを行います。
本稿ではブートディスク (SD カードの領域) に行われている設定に倣い、以下の方針例の通りディスク増設に関する設定を行うこととします。
パーティションスキーム | MBR |
---|---|
ファイルシステムフォーマット | FFSv2 |
マウント | duid (disklabel unique identifier) を使用 |
Raspberry Pi にディスクを接続します。
『sd1』として認識されます。
raspberrypi# sysctl hw.disknames
hw.disknames=sd0:0deb475078955a22,sd1:
ディスクにパーティションが存在している場合は削除 (ディスクを初期化) します。
raspberrypi# dd if=/dev/zero of=/dev/rsd1c bs=1m count=1
1+0 records in
1+0 records out
1048576 bytes transferred in 0.391 secs (2679592 bytes/sec)
ディスクにパーティションを作成します。
raspberrypi# fdisk -e sd1
Enter 'help' for information
操作対象パーティションを選択します。
『edit 0』を入力して Enter を押下します。
sd1: 1> edit 0
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
0: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
Partition id 入力のプロンプトが表示されます。
『A6』を入力して Enter を押下します。
Partition id ('0' to disable) [01 - FF]: [00] (? for help) A6
モード変更のプロンプトが表示されます。
そのまま Enter を押下 (『n』を選択) します。
Do you wish to edit in CHS mode? [n]
オフセット入力のプロンプトが表示されます。
そのまま Enter を押下 (『0』を選択) します。
Partition offset [0 - 625142447]: [0]
サイズ入力のプロンプトが表示されます。
『*』を入力 (最大値を選択) して Enter を押下します。
Partition size [1 - 625142448]: [1] *
内容を保存して終了します。
sd1*: 1> quit
Writing MBR at offset 0.
ディスクラベルを作成します。
raspberrypi# disklabel -E sd1
Label editor (enter '?' for help at any prompt)
操作対象パーティションを選択します。
『a d』を入力 (『Add partition: D』を実行) して Enter を押下します。
sd1> a d
オフセット入力のプロンプトが表示されます。
そのまま Enter を押下します。
offset: [0]
サイズ入力のプロンプトが表示されます。
そのまま Enter を押下します。
size: [625142448]
FS type 入力のプロンプトが表示されます。
そのまま Enter を押下します。
FS type: [4.2BSD]
内容を保存して終了します。
sd1*> q
確認のプロンプトが表示されます。
そのまま Enter を押下 (『y』を選択) します。
Write new label?: [y]
ディスクラベルの作成ならびに duid を確認します。
raspberrypi# disklabel sd1
# /dev/rsd1c:
type: SCSI
disk: SCSI disk
label: Logitec
duid: 7cdc3c143b8ed1a3
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 38913
total sectors: 625142448
boundstart: 0
boundend: 625142448
drivedata: 0
16 partitions:
# size offset fstype [fsize bsize cpg]
c: 625142448 0 unused
d: 625142400 0 4.2BSD 4096 32768 1
パーティションにファイルシステムを作成します。
raspberrypi# newfs -O 2 7cdc3c143b8ed1a3.d
/dev/rsd1d: 305245.3MB in 625142400 sectors of 512 bytes
375 cylinder groups of 814.44MB, 26062 blocks, 52224 inodes each
パーティションのマウントポイントを作成します。
本稿では『/data』ディレクトリとします。
raspberrypi# mkdir /data
パーティションをマウントします。
raspberrypi# mount 7cdc3c143b8ed1a3.d /data
/etc/fstab に OpenBSD の再起動後もマウントを行う設定を追加します。
本稿ではマウントオプションは『rw,nodev,nosuid』、ダンプならびにファイルシステムチェックの実行は無しとします。
7cdc3c143b8ed1a3.d /data ffs rw,nodev,nosuid 0 0
Samba のインストールにはファイルセット『xbase70.tgz』に含まれるライブラリファイルが必要となるため、OpenBSD のインストール時にファイルセットは最小構成を行った (『bsd』『bsd.mp』『base70.tgz』を選択) 場合はファイルセットを追加します。
xbase70.tgz を取得して解凍します。
※xbase70.tgz は /tmp 以下に転送されていることを前提とします。
raspberrypi# cd /tmp
raspberrypi# tar zxf xbase70.tgz -C /
パッケージをインストールします。
なお本稿では openldap-client パッケージの依存性解決には cyrus-sasl パッケージを選択することとします。
途中のパッケージ選択のプロンプト表示にはそのまま Enter を押下します。
raspberrypi# pkg_add samba
quirks-4.54 signed on 2022-04-06T16:39:59Z
quirks-4.54: ok
samba-4.14.12v0:libiconv-1.16p0: ok
samba-4.14.12v0:gettext-runtime-0.21p1: ok
samba-4.14.12v0:libunistring-0.9.7: ok
samba-4.14.12v0:libidn2-2.3.0p0: ok
samba-4.14.12v0:libunbound-1.13.2: ok
samba-4.14.12v0:gmp-6.2.1p0: ok
samba-4.14.12v0:libnettle-3.7.3: ok
samba-4.14.12v0:libtasn1-4.17.0: ok
samba-4.14.12v0:libffi-3.3p1: ok
samba-4.14.12v0:p11-kit-0.24.0: ok
samba-4.14.12v0:gnutls-3.7.2p0: ok
samba-4.14.12v0:dbus-1.12.20p1v0: ok
samba-4.14.12v0:libevent-2.1.11: ok
samba-4.14.12v0:avahi-libs-0.8p1: ok
samba-4.14.12v0:cups-libs-2.3.3.2p1: ok
samba-4.14.12v0:bzip2-1.0.8p0: ok
samba-4.14.12v0:xz-5.2.5: ok
samba-4.14.12v0:sqlite3-3.35.5p0: ok
samba-4.14.12v0:python-3.8.12: ok
samba-4.14.12v0:samba-util-4.14.12v0: ok
samba-4.14.12v0:openpam-20200510p0: ok
samba-4.14.12v0:pcre-8.44: ok
samba-4.14.12v0:glib2-2.68.4: ok
samba-4.14.12v0:gamin-0.1.10p25: ok
samba-4.14.12v0:popt-1.16p2: ok
samba-4.14.12v0:py3-setuptools-57.4.0v0: ok
samba-4.14.12v0:py3-dnspython-2.1.0: ok
samba-4.14.12v0:libtalloc-2.3.2: ok
samba-4.14.12v0:tdb-1.4.3: ok
Ambiguous: choose dependency for openldap-client-2.4.59v0:
a 0: cyrus-sasl-2.1.27p3
1: cyrus-sasl-2.1.27p3-db4
2: cyrus-sasl-2.1.27p3-gssapi
3: cyrus-sasl-2.1.27p3-ldap
4: cyrus-sasl-2.1.27p3-mysql
5: cyrus-sasl-2.1.27p3-pgsql
6: cyrus-sasl-2.1.27p3-sqlite3
Your choice:
samba-4.14.12v0:cyrus-sasl-2.1.27p3: ok
samba-4.14.12v0:openldap-client-2.4.59v0: ok
samba-4.14.12v0:tevent-0.10.2p4v0: ok
samba-4.14.12v0:ldb-2.3.2p0v0: ok
samba-4.14.12v0:jansson-2.13.1: ok
samba-4.14.12v0:py3-talloc-2.3.2: ok
samba-4.14.12v0:py3-tdb-1.4.3: ok
samba-4.14.12v0: ok
Running tags: ok
The following new rcscripts were installed: /etc/rc.d/messagebus /etc/rc.d/nmbd /etc/rc.d/samba /etc/rc.d/saslauthd /etc/rc.d/smbd /etc/rc.d/winbindd
See rcctl(8) for details.
New and changed readme(s):
/usr/local/share/doc/pkg-readmes/dbus
/usr/local/share/doc/pkg-readmes/gamin
/usr/local/share/doc/pkg-readmes/glib2
/usr/local/share/doc/pkg-readmes/samba
設定ファイルは /etc/samba ディレクトリ以下に配置されます。
raspberrypi# ls -l /etc/samba/smb.conf
-rw-r--r-- 1 root wheel 7930 Apr 15 16:12 /etc/samba/smb.conf
本稿では Samba はユーザホーム機能の提供のみを行うこととします。
以下は /etc/samba/smb.conf の内容例となります。
[global]
security = user
logging = file
dos charset = CP932
[homes]
path = /data/%S
browseable = No
valid users = %S
read only = No
本稿では以下の方針例の通りサービスの起動を行うこととします。
smbd | 起動する |
---|---|
nmbd | 起動しない |
winbind | 起動しない |
起動スクリプトは /etc/rc.d ディレクトリ以下に配置されます。
raspberrypi# ls -l /etc/rc.d/smbd
-rwxr-xr-x 1 root bin 328 Feb 3 05:06 /etc/rc.d/smbd
Samba を起動します。
raspberrypi# rcctl start smbd
smbd(ok)
Samba の自動起動が行われるようにする場合は、rcctl コマンドで smbd を有効化します。
raspberrypi# rcctl enable smbd
/etc/rc.conf.local に以下の設定が追加されます。
pkg_scripts=smbd
/etc/newsyslog.conf にログローテーションの設定を追加します。
以下は /var/log/samba/log.smbd に対して、毎日 00:00 に gzip 圧縮を行い 7 世代保存を行う場合の例となります。
※log.smbd のローテーションに関して smbd へのシグナルの送信は不要です。
/var/log/samba/log.smbd 644 7 * @T00 Z ""
Samba 接続用のユーザを作成します。
本稿ではユーザ名は『fsuser01』とします。
OS ユーザを作成します。
※Samba 接続用ユーザの作成には OS ユーザが必要となります。
但し OS へのログイン権限は不要のため、ホームディレクトリやログインシェルの指定、パスワードの設定は行わないこととします。
raspberrypi# useradd -c "Samba Share User" -d /nonexistent -s /sbin/nologin fsuser01
Samba 接続用ユーザを作成します。
pdbedit コマンド実行後、パスワード入力のプロンプトが表示されます。
パスワードを入力して Enter を押下します。
raspberrypi# /usr/local/bin/pdbedit -a fsuser01
new password:
retype new password:
パスワードを入力後、ユーザの詳細情報が表示されます。
Unix username: fsuser01
NT username:
Account Flags: [U ]
User SID: S-1-5-21-453008096-3539086010-2999768234-1000
Primary Group SID: S-1-5-21-453008096-3539086010-2999768234-513
Full Name: Samba Share User
Home Directory: \\RASPBERRYPI\fsuser01
HomeDir Drive:
Logon Script:
Profile Path: \\RASPBERRYPI\fsuser01\profile
Domain: RASPBERRYPI
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 9223372036854775807 seconds since the Epoch
Kickoff time: 9223372036854775807 seconds since the Epoch
Password last set: Fri, 15 Apr 2022 16:31:23 JST
Password can change: Fri, 15 Apr 2022 16:31:23 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Samba 接続用ユーザのディレクトリを作成します。
作成先は増設したディスクのパーティション内とします。
raspberrypi# mkdir -m 700 /data/fsuser01
raspberrypi# chown fsuser01:fsuser01 /data/fsuser01
Samba にログインします。
raspberrypi# /usr/local/bin/smbclient -U fsuser01 //127.0.0.1/fsuser01
Enter WORKGROUP\fsuser01's password:
Try "help" to get a list of possible commands.
smb: \>
ログアウトします。
smb: \> exit