コンピューター好きのブログ

主にコンピューター・ラズパイと電子工作・オーディオ関連の記事を書いています。

SELinuxを有効にしたままCentOS 7にsamba経由でWindowsからアクセスできるようにする方法

以前、CPUオンボードのマザーボードIntel D525MWのPCに、CentOS 7をインストールしてUSB-HDDを使えるようにした記事を書きました。

 

www.toomath.net

 

今回はこのPCにSELinuxを有効にしたままsambaでアクセスできるようにする方法をご紹介します。

 

 

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 %v

security = user
passdb backend = tdbsam
dos charset = CP932
unix charset = UTF-8
wins support = yes

load 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を使ってファイル共有を行う方法でした~。

 

(c) 2018 toomath