ワイズガイの思考

アテクシめが日々の出来事、考えたこと事及び撮った写真等を暇とやる気があった時に綴れるかもしれない。

sambaの設定

2023-03-05 02:32:09 | コンピューター

Linux Boxを立ち上げてSambaを走らせ、ファイルサーバーにしているが、 なんらかの理由でシステムを入れ替えるたび、Sambaを設定し直すはめになる。

一度済ませてしまえばいいのだが、いくつかの手順をふまないといけず、 それがなかなか面倒で、たまにしかやらないからすぐに忘れてしまう。

次回以降にsambaの設定に戸惑わないよう方法を書き記す。

また、blogにかくことで、sambaの設定で困っているかたの一助になれば幸いである。

設定の手順は基本的に下記のとおりになる。 順序が前後したり、場合によっては不要になる。

 

・ホスト名設定

・sambaパッケージインストール

・sambaアクセスユーザーの作成 • Windows属性追加

・共有用フォルダー作成、パーミッション変更

・設定(smb.confの変更)

・firewallの許可設定・SELinuxポリシー変更

 

今回使用するディストリビューションはFedora37である。

ホスト名等は、便宜上下記のとおりにするが各環境にあわせて設定すること。

ホスト名は、SFSとする。

アクセスユーザー、sambauser 共有するフォルダーは、/run/media/USERNAME/SATAHDD001/share

※Linuxが入っているドライブとは別にSATAに接続したHDD上に共有フォルダーを作成する。

ワークグループはWORKGROUPにする。

・ホスト名設定

ルート権限にて、

nmcli general hostname SFS

 

もしくは、

sudo nmcli general hostname SFS

 

・sambaパッケージインストール

ルート権限にて、

dnf -y install samba

もしくは、

sudo dnf -y install samba

・sambaアクセスユーザーの作成

ルート権限にて、

useradd -M -s /sbin/nologin sambauser

※ホームフォルダーを作成せず、カアウントがローカルでログインしないオプション設定。

Windows属性追加 ルートで、

pdbededit -a -u sambauser

・共有用フォルダー作成、パーミッション変更

※共有フォルダーにつかうHDDを/run/media/USERNAME/SATAHDD001/に マウントしてある前提。

ルート権限にて、

cd /run/media/USERNAME/SATAHDD001/

mkdir share

chmod -R 777 share

chown -R nobody:nobody share

※shareフォルダーを書き込み読み込み無制限、所有者なしに設定。

・設定(smb.confの変更)

/etc/sambaフォルダー内にあるsmb.confファイルを編集することでsambaの設定を行う。

編集前に

cp -p smb.conf smb.conf.org

としてファイルのバックアップをとっておく。(もちろんルート権限で実行)

※プリンタサーバー機能は使用せず、関係箇所はすべて#をアタマにつけ コメントアウトする。

※パスワード形式は、tdbsamとする。

smb.confファイルを下記のように書きかえる。

 

[global]

workgroup = WORKGROUP

server string = SAMBA SERVER Version %v

netbios name = SFS

security = user

 

passdb backend = tdbsam

 

unix charset = UTF-8

dos charset = CP932

wins support = yes

# printing = cups

# printcap name = cups

load printers = no

disable spoolss = yes

# cups options = raw

 

# Install samba-usershares package for support

# include = /etc/samba/usershares.conf

 

※プリンタ共有機能設定「load printers = no」はnoで無効、「disable spoolss = yes」はyesで無効。

 

[share]

path = /run/media/USERNAME/SATAHDD001/share

broowsable = yes

read only = no

force create mode = 777

force directory mode = 777

 

Fedora37のインストール直後のsmb.confには、[share]セクションがなくかわりに「include =/etc/samba/usershares.conf」と書かれていた。

見慣れないもので正直よくわからなかったためコメントアウトして[share]セクションを書き足した。

 

[homes]

comment = Home Directories

valid users = %S, %D%w%S

browseable = No

read only = No

inherit acls = Yes

 

# [printers]

# comment = All Printers

# path = /var/tmp

# printable = Yes

# create mask = 0600

# browseable = No

 

# [print$]

# comment = Printer Drivers

# path = /var/lib/samba/drivers

# write list = @printadmin root

# force group = @printadmin

# create mask = 0664

# directory mask = 0775

 

sambaを走らせる前に設定ファイルに間違いがないか「testparm」コマンドで確認する。

・firewallの許可設定、SELinuxポリシー変更

ファイアウォールにsambaサービス接続許可を追加する。

 

ルート権限で

firewall-cmd --add-service=samba --permanent

「success」と表示されれば完了 ファイアウォールをリロードする。

 

ルート権限で

firewall-cmd –-reload

 

SELinuxポリシー変更する。

※ポリシー変更しなくても「setenforce 0」でSELinuxを無効化してしまうのが一番簡単だと思う。 しかし、それだと面白みがないのできちんと設定しようと考えたがここが一番苦労した。

共有フォルダーのラベリングルールを変える。

ルート権限で

semanage fcontext -a -t samba_share_t “/var/run/media/USERNAME/SATAHDD001/share”

※初め、/run/media/USERNAME/SATAHDD001/shareで設定しようとしたらうまくいかなかった。 しつこく試していたら/runフォルダー、/var/runフォルダーで競合するとメッセージがでてきた。 /varフォルダーのほうで設定したらうまくいった。まだまだlinuxについて理解が浅いorz

共有フォルダーのコンテキストを変える。

ルート権限で

restorecon -R -v /var/run/media/USERNAME/SATAHDD001/share

あとは、smb、nmbサービスを起動(再起動)させる。

あ~~~、めんどう。