以前、CPUオンボードのマザーボードIntel D525MWのPCに、CentOS 7をインストールしてUSB-HDDを使えるようにした記事を書きました。
今回はこのPCにSELinuxを有効にしたままsambaでアクセスできるようにする方法をご紹介します。
- sambaサービスのパッケージをインストールする
- sambaサービスの設定をする
- 共有フォルダにアクセスするユーザーを設定する
- ディレクトリとファイルのアクセス権を設定する
- SELinuxを設定する
- ファイヤーウォールを設定する
- sambaサービスを再起動する
- 他のWindows PCからアクセスできるか確認する
sambaサービスのパッケージをインストールする
最初にsambaサービスのパッケージをインストールします。
ここからの作業はすべてrootで行うため、まず以下のsuコマンドでrootになります。
rootになると行の先頭が # に変わります。
$ su
パスワード: ここにパスワードを入力
次に、下記のコマンドを実行します。
# yum -y install samba samba-common
sambaサービスの設定をする
設定ファイル/etc/samba/smb.confを編集します。
ここではUSB-HDDをshareというフォルダ名で共有できるようにしました。
hogehogeというユーザーのみが、読み書きできる設定です。
これ以降、hogehogeというユーザーで設定を行いますが、実際はお好きな名前に変更してください。
[global]
workgroup = WORKGROUP
server string = SAMBA SERVER Version %vsecurity = user
passdb backend = tdbsam
dos charset = CP932
unix charset = UTF-8
wins support = yesload printers = no
disable spoolss = yes
[share]
comment = share
path = /mnt/USB-HDD
browsable = yes
writable = yes
read only = no
create mask = 0700
directory mask = 0700
valid users = hogehoge
force user = hogehoge
force group = hogehoge
共有フォルダにアクセスするユーザーを設定する
OSにユーザーを追加する
以下のコマンドでユーザーを追加し、パスワードを設定します。
# useradd hogehoge
# passwd hogehoge
ユーザー hogehoge のパスワードを変更。
新しいパスワード: ここにパスワードを入力
新しいパスワードを再入力してください: 再度パスワードを入力
passwd: すべての認証トークンが正しく更新できました。
sambaにユーザーを登録する
以下のコマンドでsambaにユーザーを登録します。
# pdbedit -a -u hogehoge
ディレクトリとファイルのアクセス権を設定する
共有するディレクトリとファイルにhogehogeユーザーで読み書きできるようにします。以下のコマンドを実行します。
# chmod -R 0777 /mnt/USB-HDD
# chown -R hogehoge:hogehoge /mnt/USB-HDD
SELinuxを設定する
/mnt/USB-HDDにsamba経由でアクセスするには、SELinuxの設定が必要です。
以下のコマンドでディレクトリを実行します。
# semanage fcontext -a -t samba_share_t "/mnt/USB-HDD(/.*)?"
# restorecon -R -v /mnt/USB-HDD
/mnt/USB-HDD の後ろの (/.*)? は、/mnt/USB-HDD 配下のすべてのディレクトリ・ファイルにアクセス可能とするために付与します。
ファイヤーウォールを設定する
他のPCやスマホなどからsambaにアクセスできるように、ファイヤーウォールを設定します。
以下のコマンドでsambaへのアクセスを許可し、
# firewall-cmd --add-service=samba --permanent
以下で設定を読み込みます。
# firewall-cmd --reload
sambaサービスを再起動する
おそらくすでにsambaサービスが起動しているので、sambaサービスを再起動します。(sambaは2つのサービスで構成されています。)
# systemctl restart smb
# systemctl restart nmb
そして、マシン起動時にsambaサービスを自動起動するようにします。
# systemctl enable smb
# systemctl enable nmb
他のWindows PCからアクセスできるか確認する
まず、ip addrでCentOS 7マシンのIPアドレスの確認します。
以下の赤字が部分がIPアドレスです。
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.0.10/24 brd 192.168.0.255 scope global noprefixroute enp1s0
valid_lft forever preferred_lft forever
inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute
valid_lft forever preferred_lft forever
次に、他のWindows PCでエクスプローラーを開き、アドレスバーに下記を入力してEnterを押します。
\\192.168.0.10
ユーザー認証画面が出るので、ユーザーにhogehoge、パスワードにhogehogeのパスワードを入力すると、shareというフォルダがみえるはずです。
以上、CentOS 7でsambaを使ってファイル共有を行う方法でした~。