Samba のインストール
公開日:2020-02-02
更新日:2020-07-21
更新日:2020-07-21
1. 概要
Samba をインストールして、LinuxのディレクトリをWindowsから見れるようにします。
2. Samba のインストール
yum install samba
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
確認
firewall-cmd --list-all
次回 VM 起動時に自動的に Samba が起動するようにします。
systemctl enable smb.service
systemctl enable nmb.service
Samba を起動します。
起動
systemctl start smb.service
systemctl start nmb.service
再起動
systemctl restart smb.service
systemctl restart nmb.service
停止
systemctl stop smb.service
systemctl stop nmb.service
状態確認
systemctl status smb.service
systemctl status nmb.service
3. Samba の設定
Samba ユーザの追加。既存の Linux ユーザの中から指定してください。
Samba ユーザの確認
smb.conf の修正
vi /etc/samba/smb.conf
今回は Webアプリの開発で使うため、一番下に以下を追加しました。
smb.conf の修正した場合は、smb と nmb を再起動してください。
Samba でアクセスできるように SELinux を設定します
今回は既に httpd_sys_rw_content_t を設定しているため、samba_share_t を設定すると、
ブラウザからアクセスできなくなります。
上記設定は、全てのディレクトリが Samba で共有できるようになるため、
通常のディレクトリの際は使わない方が良いかもしれません。
エクスプローラーで \\192.168.233.100 にアクセスします。
ネットワーク資格情報の入力画面が表示されます。
test ユーザの test と、パスワードを入力します。
「資格情報を記憶する」にチェックを付けます。
ここで記憶した情報は、コントロールパネルの資格情報マネージャーで削除可能です。
エクスプローラーにフォルダが表示されます。
ファイルを開くことはできますが、保存できません。
これは書き込み権限がないためです。
ディレクトリの所有者を test ユーザに変更して、書き込み可にすれば、書き込めるようになります。
但し、今回は apache の公開フォルダを Sambaで共有しているため、
所有者を test ユーザに変更すると、今度は apache からアクセスできなくなります。
そのため、ディレクトリのグループを apache のままにして、
apache グループに test ユーザを追加します。
そして、apache グループに書き込み権限を付与することにより、
apache ユーザと test ユーザでアクセスできるようにします。
apache グループに test ユーザの追加(ユーザの所属グループの設定)
セカンダリーグループとして apache グループを追加します。
所属グループの確認
apache グループに書き込み権限を付与する
pdbedit -a test
Samba ユーザの確認
pdbedit -L
smb.conf の修正
vi /etc/samba/smb.conf
今回は Webアプリの開発で使うため、一番下に以下を追加しました。
[web]
comment = centos
path = /var/www/html
writable = yes
web が共有ディレクトリ名となります。smb.conf の修正した場合は、smb と nmb を再起動してください。
Samba でアクセスできるように SELinux を設定します
setsebool -P samba_export_all_rw 1
通常のディレクトリは samba_share_t を設定すれば問題ありませんが、今回は既に httpd_sys_rw_content_t を設定しているため、samba_share_t を設定すると、
ブラウザからアクセスできなくなります。
上記設定は、全てのディレクトリが Samba で共有できるようになるため、
通常のディレクトリの際は使わない方が良いかもしれません。
エクスプローラーで \\192.168.233.100 にアクセスします。
ネットワーク資格情報の入力画面が表示されます。
test ユーザの test と、パスワードを入力します。
「資格情報を記憶する」にチェックを付けます。
ここで記憶した情報は、コントロールパネルの資格情報マネージャーで削除可能です。
エクスプローラーにフォルダが表示されます。
ファイルを開くことはできますが、保存できません。
これは書き込み権限がないためです。
ディレクトリの所有者を test ユーザに変更して、書き込み可にすれば、書き込めるようになります。
但し、今回は apache の公開フォルダを Sambaで共有しているため、
所有者を test ユーザに変更すると、今度は apache からアクセスできなくなります。
そのため、ディレクトリのグループを apache のままにして、
apache グループに test ユーザを追加します。
そして、apache グループに書き込み権限を付与することにより、
apache ユーザと test ユーザでアクセスできるようにします。
apache グループに test ユーザの追加(ユーザの所属グループの設定)
usermod -aG apache test
test ユーザは test グループに所属しているため、セカンダリーグループとして apache グループを追加します。
所属グループの確認
groups test
apache グループに書き込み権限を付与する
chmod 775 -R /var/www/html
4. 通常のディレクトリの共有
ユーザの追加。既存のユーザで接続する場合は不要。
useradd test_user
Sambaユーザの追加
pdbedit -a test_user
共有用ディレクトリの作成と所有者の変更
mkdir /home/test_user/share
chown test_user:test_user /home/test_user/share
smb.conf の修正
vi /etc/samba/smb.conf
[share_test]
path = /home/test_user/share
comment = share
writable = yes
ちなみに、[homes] により、ユーザの home ディレクトリを共有する場合は、smb.conf の修正は不要です。Samba の再起動
systemctl restart smb.service
systemctl restart nmb.service
SELinuxの設定。Samba の共有を許可します。
chcon -R -t samba_share_t /home/test_user/share
コントロールパネルの資格情報マネージャーから \\192.168.233.100 を削除する。
エクスプローラーで \\192.168.233.100 にアクセスします。
test_user でログインします。
エラーが出ても、もう一度アクセスすると、ディレクトリ一覧が表示され、共有ディレクトリにアクセスできます。
設定を変えて最初から接続する際に、 ネットワーク資格情報の入力画面が表示されない場合は、 資格情報マネージャーから削除するだけでなく、Samba の再起動をしてください。

