1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

私的サーバー構築日誌:Sambaで共有フォルダ公開・Ubuntu 24.04 LTS in MicroServer N54L

Posted at

能書き

私的サーバー構築日誌:仕切り直しからの自宅サーバー構築の続きです。

MicroServer N54L に Ubuntu24.04LTS をインストールしてZFSで使うように設定した我が家のファイルサーバですが、今回は Samba でファイル共有します。

と言っても、今回は非常に基本的な設定だけです。ネットを検索すればそこら中に記事が転がっているので、参考文献は示しません。

目標

  • Ubuntuサーバーのユーザーに対してアクセス権を付けて、Windowsマシンからのアクセス(読み書き、読み出し専用)を確認

インストール

sudo apt update -y && sudo apt upgrade -y
sudo apt install -y samba

Sambaサービスが起動した事を確認します。

sudo systemctl status smbd

ユーザー追加

Sambaで使用するユーザーはOSの一般ユーザーです。既に用意したユーザーがあればそれで良いです。
新しく追加するなら、例えばtaroは下記のようにします。

通常はホームディレクトリ内に用意したサブディレクトリをSambaでそのユーザーだけに公開すると思いますが、今回はファイルサーバーのZFSフォーマットしたディレクトリを公開します。その都合でtaroにはホームディレクトリを作りません。Samba用ユーザーという事でログインも禁止してみます。

sudo useradd -M -s /usr/sbin/nologin taro

そしてSamba用パスワードはsmbpasswdコマンドを管理者権限で実行して設定します。

sudo smbpasswd -a taro

共有フォルダを作成

共有対象となるフォルダを作成します。何でもいいのですが、先程作成したtaroユーザー用にZFSのフォルダを用意してみます。

cd /mnt/tank
sudo mkdir taro
sudo chown taro: taro
sudo chmod 777 taro

設定・読み出し専用

いよいよSambaの設定です。/etc/samba/smb.confファイルを修正します。

まずは読み出し専用で設定してみます。

cat <<___ | sudo tee -a /etc/samba/smb.conf >/dev/null
[taro]
path = /mnt/tank/taro
browsable = yes
guest ok = no
read only = yes
___

色んな記事にはここでsmbdを再起動して反映と書いてありますが、実際にやってみると再起動不要のようです。/etc/samba/smb.confを書くといきなり利用可能になりました。

※後述しますが、smbdはちゃんと再起動するのが正しいようです。

Windowsマシンからエクスプローラーで\\172.16.1.3(172.16.1.3は我が家のファイルサーバーのIPアドレス)を開いてみます。

実験で、ファイルを作成してみます。

サーバー側
echo "test" > /mnt/tank/taro/test.txt
sudo chown taro: /mnt/tank/taro/test.txt

クライアント側(Windowsマシン)で表示を更新すると、test.txtが表示されます。が、編集しても保存できません。
新しいテキストドキュメントなどを作成しようとしても権限不足のエラーが表示されます。

image.png

これは正しい挙動ですね。

以上で読み出し専用の設定が出来ました。

設定・読み書き可能

先程の/etc/samba/smb.confread onlynoに変えます。

sudo sed -i -e '/^read only =/c read only = no' /etc/samba/smb.conf

今度は書き換えただけでは反映しませんでした。きちんとsmbdを再起動しましょう。

sudo systemctl restart smbd

今度はクライアント側(Windowsマシン)でtest.txtも編集できますし、新しいファイルも作成できます。

仕舞い

しまった。Subversion登録を忘れてました。

まずは追加分の確認から。

sudo svn st /etc

予想以上に大量のファイルが追加されてました。参った。

$ sudo svn st /etc
?       /etc/alternatives/tdbbackup
?       /etc/alternatives/tdbbackup.8.gz
?       /etc/apparmor.d/samba
M       /etc/group
M       /etc/gshadow
?       /etc/init.d/nmbd
?       /etc/init.d/samba-ad-dc
?       /etc/init.d/smbd
M       /etc/ld.so.cache
?       /etc/pam.d/samba
M       /etc/passwd
?       /etc/rc0.d/K01nmbd
?       /etc/rc0.d/K01samba-ad-dc
?       /etc/rc0.d/K01smbd
?       /etc/rc1.d/K01nmbd
?       /etc/rc1.d/K01samba-ad-dc
?       /etc/rc1.d/K01smbd
?       /etc/rc2.d/S01nmbd
?       /etc/rc2.d/S01samba-ad-dc
?       /etc/rc2.d/S01smbd
?       /etc/rc3.d/S01nmbd
?       /etc/rc3.d/S01samba-ad-dc
?       /etc/rc3.d/S01smbd
?       /etc/rc4.d/S01nmbd
?       /etc/rc4.d/S01samba-ad-dc
?       /etc/rc4.d/S01smbd
?       /etc/rc5.d/S01nmbd
?       /etc/rc5.d/S01samba-ad-dc
?       /etc/rc5.d/S01smbd
?       /etc/rc6.d/K01nmbd
?       /etc/rc6.d/K01samba-ad-dc
?       /etc/rc6.d/K01smbd
?       /etc/samba
M       /etc/shadow
M       /etc/subgid
M       /etc/subuid
?       /etc/systemd/system/multi-user.target.wants/nmbd.service
?       /etc/systemd/system/multi-user.target.wants/samba-ad-dc.service
?       /etc/systemd/system/multi-user.target.wants/smbd.service
?       /etc/systemd/system/nmb.service
?       /etc/systemd/system/samba.service
?       /etc/systemd/system/smb.service
?       /etc/ufw/applications.d/samba

個別に拾い上げるのも面倒なので、全部まとめて(今回のtaroユーザーも含めて)追加してしまいましょう。

cd /etc
sudo svn st | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -rt svn add

コミット。

sudo svn ci -m"added samba and the test user 'taro'"

これで一通り完了です。基本的なディレクトリ公開だけなら簡単でした。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?