はじめに
久々に自宅のNUCで、Sambaサーバを動かしてみることにしました。Samba4に挑戦です。
Sambaサーバとして使用するNUCはこちらです↓
Linuxベースのファイル共有用のサーバとしてはNFSサーバやWebDAVサーバとかを所構わず立ち上げて使っている一方で、Sambaはバージョンが進むに連れて設定の方法が複雑で、かつとっつきにくいものになってしまったために使うのをやめてしまいました。
その後、ずいぶんと長い月日が流れました。
そして、このたび、嫁様のPCを新調するにあたり、古いPCにあったファイルを嫁様でも簡単にアクセスできる方法で保管できる場所を作るよう求められたので、Sambaを久々に使ってみるしかないという結論に達したわけです。
というわけで、この記事ではFedora 27上でのSambaのインストール及び設定の方法について書きます。
なお、SELinuxを有効にしている場合には、複数のユーザでファイル共有をするために追加の設定が必要なことがこの記事を最初に書いた後でわかりましたので、それについても書きます。
Amazonで探すと、こんな感じの書籍も売っているようです↓
インストール及び大まかな設定。
dnfでインストール。
Sambaのパッケージはroot権限で以下のようにdnfコマンドを実行するとインストールできます。develパッケージとかがインストールされているかもしれないのは見逃す方向でお願いいたします。
「デフォルト設定」のsmb.confの移動
前項の方法でFedora 27にSambaをインストールすると、/etc/samba/smb.confもインストールされますが、これがあると次項のsamba-toolの実行時にエラーになってしまうので、root権限で以下のコマンドを実行して、ファイル名を変更しておきます。
スポンサーリンク
samba-toolでsmb.confを作る。
root権限で以下のコマンドを実行します。LDAPは使わない方向です。
すると、レルム、サーバロール及びDNSの入力を求められるので、適切な値を入力します。なお、以下の値は実際に入力した値とは異なります。
自宅のLANにはBIND9を使った(自宅LAN用の)DNSサーバが稼働していますが、chrootの設定を変えたくなかったので、SAMBA_INTERNALなDNSを使用し、DNSのフォワーディングも無効にしています。また、管理者パスワードは表示していませんが、それなりの強度のものを求められますので、文字、記号及び数字を最低1文字ずつ入れておきます。
パスワードの入力が終わると以下のように画面にメッセージが出力されて、コマンドの実行が終了し、/etc/samba/smb.confが作成されます。
krb5.confを書き換える。
上記の画面出力の指示通りに/etc/krb5.confのlibdefaultsセクションの内容を/var/lib/samba/private/krb5.confの内容で上書きします。
firewallの設定を変更する。
以下のコマンドを実行し、sambaが使用するポートを他のPCが使用できるように設定します。
sambaを起動する。
以下のコマンドをroot権限で実行し、sambaを起動します。
psコマンド等を駆使して起動したかどうか、確認してみます。
起動してますね。
smbclientで動作確認。
以下のコマンドを実行し、ログオンできるかどうか確認します。なお、パスワードは実際に設定したものとは異なります。
ログオンできているようです。
ファイル共有のための詳細な設定。
Sambaのサーバの設定ができたら、次はファイル共有のための詳細な設定を行います。
smb.confへのshareセクションの追加
/etc/samba/smb.confに以下の設定を追加し、保存します。
SELinuxの設定
SELinuxを有効にしている場合には、上記のpathで設定したディレクトリの下に作成されたファイルやフォルダに samba_share_t タイプのラベルを付与する必要があるため、root権限で以下のコマンドを実行します。
なお、semanageコマンドはFedora 27ではpolicycoreutils-python-utilsパッケージに含まれているので、コマンドが見つからないと言われた場合には、以下のコマンドを実行前にdnfコマンドでインストールします。
最初は以下のコマンドを実行してお茶を濁す予定でしたが、やめました。(`・ω・´)
Sambaの再起動
設定を追加したら、Sambaを再起動します。
Samba用のユーザアカウントの追加
Samba用のユーザアカウントの追加は以下の手順で行います。
- 対応するUNIXのアカウントがない場合には、root権限で以下のコマンドを実行します。なお、対応するSambaサーバ上でのUNIXのアカウントがある場合には、以下のコマンドは実行せずに手順2に進みます。
# useradd panda
- root権限で以下のコマンドを実行し、Samba用のユーザアカウントを作成します。
[root@nuc panda]# pdbedit -a -u panda new password: retype new password: Unix username: panda NT username: Account Flags: [U ] User SID: S-1-5-21-2376112507-1695703218-107372440-1103 Primary Group SID: S-1-5-21-2376112507-1695703218-107372440-513 Full Name: Home Directory: HomeDir Drive: (null) Logon Script: Profile Path: Domain: Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: 0 Kickoff time: 木, 14 9月 30828 11:48:05 JST Password last set: 土, 26 5月 2018 12:25:24 JST Password can change: 土, 26 5月 2018 12:25:24 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Windows10のクライアントを使って動作確認。
Windows10からSambaのサーバにログオンできるかどうか及び共有フォルダ上でファイルが作成できるかどうか確認してみます。
以下の手順で確認します。
- ログオンしたいWindows10のクライアントPCのエクスプローラを起動します。
- 左側のツリービューから「PC」を探し出してクリックします。
- 以下のような画面に切り替わるので、「コンピュータ」(下図の赤矢印)をクリックします。
- 以下のような画面に表示が切り替わるので、「ネットワークの割り当て」を選択し、さらに表示されたメニューバーの「ネットワークの割り当て」(下図の赤矢印)を選択します。
- 「ネットワークの割り当て」ウィンドウが表示されますので、フォルダーのパスを指定し、「完了」ボタンを押します。
- 「ネットワーク資格情報の入力」ウィンドウが表示されますので、前節で作成したユーザ名及びパスワードを入力し、「OK」ボタンを押します。
- ユーザ名及びパスワードの組み合わせが正しければ、ログオンに成功し、以下のような画面が表示されます。すでにあるフォルダは移転前のサーバで一時的にSamba4の設定を行ったときに作ったものですので、気にしない方向でお願いいたします。?
- この共有フォルダに”panda大学習帳.txt”というファイル名のファイルを作成し、Sambaサーバ側からアクセスしてみます。
panda@nuc ~]$ ls -l /export/share/ 合計 8 drwxrwxr-x. 8 3000018 users 226 5月 6 17:03 backup drwxrwxr-x. 4 3000019 users 37 5月 6 13:12 neco -rwxrwxr-x+ 1 3000009 users 15 5月 26 13:08 panda大学習帳.txt [panda@nuc ~]$ iconv -f sjis -t utf8 /export/share/panda大学習帳.txt panda大学習帳
メモ帳でファイルに文字を書き入れたため、ファイルの中身の文字コードがcp932になっていますが、ファイルが作成できることが確認できました。
まとめ
ここまでの作業で、嫁様の期待にはなんとか応えることができそうです。ファイルなどの移動などの操作がWindowsと同じ使用感でできるのは便利ですね。
ファイルの退避先として有効に使えそうです。
この記事は以上です。
[2018/10/14補足]パスワードの変更
「パスワードの期限が切れています。」というエラーメッセージが表示される場合には、Samba4サーバにログインして、以下のようにsmbpasswdコマンドを実行すると、パスワードを変更することができます。