前回Samabaをソースインストールしました。
www.unknownengineer.net
先に言っておきますが、別にソースでインストールする理由は特に無いです。なんとなくです。
そしてその結果、設定時に地味にハマった箇所を今回まとめていきます。
目次
smb.conf
まずはsambaの設定ファイルである、smb.confを探します。
CentOS7の場合、パッケージで導入すれば"/etc/samba/smb.conf"に作られますが、ソースで入れたらどこにも無いです。自分で作りましょう。
configureの時に–confdirを指定していなければ、PREFIX/etcの下にsmb.confを作ります。
今回の設定の方針としては「同一セグメントの端末は全て許可」で作ります。えぇ、ユーザー認証が上手く行きませんでした。
# vim /usr/local/samba/etc/smb.conf [global] workgroup = WORKGROUP security = share log file = /var/log/samba/log.%m max log size = 50 dos charset = CP932 unix charset = UTF8 display charset = UTF8 [data] comment = Samba Public path = /samba/public public = Yes guest ok = Yes read only = No writable = Yes hosts allow = 192.168.10.
共用ディレクトリ/samba/publicを作成しておきます。
#mkdir -p /samba/public
とりあえずこれで起動してみます。
# /usr/local/samba/sbin/smbd start # ps aux |grep smbd root 3667 0.0 0.0 9032 660 pts/0 S+ 15:55 0:00 grep --color=auto smbd
起動しません…
4.x系の罠
罠というほどでは無いのですが、sambaは4系から"security = share"が使えなくなっています。shareと同様の設定をしたければ、以下のように変更します。
# vim /usr/local/samba/etc/smb.conf [global] workgroup = WORKGROUP security = user map to guest = bad user log file = /var/log/samba/log.%m max log size = 50 dos charset = CP932 unix charset = UTF8 display charset = UTF8 [data] comment = Samba Public path = /samba/public public = Yes guest ok = Yes read only = No writable = Yes hosts allow = 192.168.10.
“security"を"user"に変更し、"map to guest = user"を指定します。これでユーザー認証に失敗したユーザーは全てguestになります。
# /usr/local/samba/sbin/smbd start # ps aux |grep smbd root 3789 0.0 0.3 328664 6284 ? Ss 16:03 0:00 /usr/local/samba/sbin/smbd start root 3790 0.0 0.1 322640 3012 ? S 16:03 0:00 /usr/local/samba/sbin/smbd start root 3791 0.0 0.1 322632 2840 ? S 16:03 0:00 /usr/local/samba/sbin/smbd start root 3793 0.0 0.1 329188 3704 ? S 16:03 0:00 /usr/local/samba/sbin/smbd start root 3795 0.0 0.0 9032 660 pts/0 S+ 16:03 0:00 grep --color=auto smbd
これでとりあえず起動しました。
Windowsから"\sambのIP"でアクセスしてみると、publicディレクトリが見えるかと思います。但し、guestアカウントにマッピングされている為、今の状態では権限がありません。とりあえずguestでもファイルの読み書き出来るようにするのであれば、ディレクトリに権限与えといて下さい。尚、こんな設定にするなら、せめてhosts allowはかけましょう。
# chmod 777 /samba/public
systemdの設定
yumで入れた場合のsmb.serviceが以下になります。
[Unit] Description=Samba SMB Daemon After=syslog.target network.target nmb.service winbind.service [Service] Environment=KRB5CCNAME=FILE:/run/samba/krb5cc_samba Type=notify NotifyAccess=all PIDFile=/run/smbd.pid LimitNOFILE=16384 EnvironmentFile=-/etc/sysconfig/samba ExecStart=/usr/sbin/smbd $SMBDOPTIONS ExecReload=/usr/bin/kill -HUP $MAINPID LimitCORE=infinity [Install] WantedBy=multi-user.target
このままでは当然動かないので、ソース用に少し変更します。
# vim /etc/systemd/system/smb.service Description=Samba SMB Daemon After=syslog.target network.target nmb.service winbind.service [Service] Environment=KRB5CCNAME=FILE:/run/samba/krb5cc_samba Type=forking NotifyAccess=all PIDFile=/usr/local/samba/var/run/smbd.pid LimitNOFILE=16384 EnvironmentFile=-/etc/sysconfig/samba ExecStart=/usr/local/samba/sbin/smbd $SMBDOPTIONS ExecReload=/usr/bin/kill -HUP $MAINPID LimitCORE=infinity [Install] WantedBy=multi-user.target
変更するのは2箇所。
Typeを"forking"に変更。
PIDFileを"/usr/local/samba/var/run/smbd.pid"に変更します。
# systemctl enable smb.service # systemctl start smb # systemctl stop smb
これで起動/停止が出来ればとりあえずオッケーです。ユーザー認証周りはもう少し学習します。