#contents

* インストール [#Install]
- Linux マシンをホストとして公開する場合
 # yum install samba
- Windows 上の共有フォルダを Linux マシンにマウントする場合は追加のパッケージが必要
 # yum install samba-client cifs-utils

* ユーザ設定 [#SmbUser]
- Samba用ユーザの確認
 # pdbedit -L
- 既存のLinuxユーザに対しSambaで接続するためのパスワードを追加する。
 # pdbedit -a -u <ユーザ名>

* グループ設定 [#SmbGroup]
- 共有フォルダ管理グループ(SmbAdmin)を作成し、既存ユーザ user1 を SmbAdmin へ追加
 # groupadd SmbAdmin
 # usermod -G SmbAdmin -a user1
- グループ SmbUsers に属しているユーザすべてに共有フォルダへのアクセスを許可する場合
 # groupadd SmbUsers
 # usermod -G SmbUsers -a <ユーザ名>

* 共有用フォルダ [#SharedFolder]
- 共有フォルダ自体はオーナーとなるユーザはなし(nobody)。
- SmbUsers グループに属するユーザは読み書き可能。
- 管理グループ(SmbAdmin)に属するユーザがファイル作成/削除できるよう既定の拡張ファイル属性を設定。
 # cd /home
 # mkdir Shared
 # chown nobody:SmbUsers Shared
 # chmod 777 Shared
 # setfacl -m d:g:SmbAdmin:rwx /home/Shared

- [[8.2. Setting Access ACLs:https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-acls-setting.html]]
- [[8.3. Setting Default ACLs:https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-acls-setting-default.html]]

* 設定 [#Conf]
- /etc/samba/smb.conf (抜粋)
 [global]
 	unix charset = UTF-8
 	dos charset = CP932
 ;	display charset = UTF-8
 	wide links = yes
 	follow symlinks = yes
 	unix extensions = no
 	smb ports = 445
 	map to guest = Bad User
 ;	max protocol = SMB3
 
 	workgroup = WORKGROUP
 	hosts allow = 127. 192.168.0. 10.8.0.
 
 	security = user
 
 ;	CUPS を無効化
 	printing = bsd
 
 [homes]
 	browseable = no
 	writable = yes
 	valid users = %U
 
 [Shared]
 	path = /home/Shared
 	read only = no
 	browseable = yes
 	force group = SmbUsers
 	force create mode = 664
 	force directory mode = 775
 	valid users = <ユーザ1>, <ユーザ2>, @SmbUsers
 ;	samba 4.x で share modes は廃止
 ;	share modes = yes
 	dos filetimes = yes
- Windows 10 1709 は「max protocol = SMB2」を指定しないと接続に失敗する。(CentOS6, samba 3.6.23)

* サービス設定 [#Service]

** CentOS 6 [#Service_CentOS6]
 # chkconfig --list smb
 # chkconfig smb on
 # chkconfig --list smb
 # service smb restart
 # chkconfig --list nmb
 # chkconfig nmb on
 # chkconfig --list nmb
 # service nmb restart

** CentOS 7 [#Service_CentOS7]
 # systemctl enable smb nmb
 # systemctl restart smb nmb

* ファイアウォール設定 [#Firewall]

** CentOS 6 [#Firewall_CentOS6]
+ 「システム/管理/ファイアーウォール」を起動。
 # system-config-firewall
+ 「カスタマイズ」を選択。
+ 「Samba」「Sambaクライアント」にチェックを入れる。
+ 「閉じる」を選択。
+ 「OK」を選択。
+ ファイアウォール設定を変更する旨の警告が出るので「はい」を選択。
+ IPv6 を無効にしていると ip6tables の設定に失敗した旨のエラーメッセージが表示されるが、iptables については設定されている。

** CentOS 7 [#Firewall_CentOS7]
- OpenVPN 経由でのアクセスを許可
- /etc/firewalld/services/samba-vpn.xml
#code(xml){{{{
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Samba-VPN</short>
  <description>This option allows you to access and participate in Windows file and printer sharing networks. You need the samba package installed for this option to be useful.</description>
  <port protocol="tcp" port="445"/>
  <destination ipv4="192.168.1.0/24"/>
  <destination ipv4="192.168.0.0/24"/>
</service>
}}}}
- サービス登録
 # firewall-cmd --permanent --add-service=samba-vpn
 # firewall-cmd --reload

* SELinux設定 [#SELinux]

** CentOS 6 [#SELinux_CentOS6]
- ユーザホームディレクトリのアクセスを許可&br;
Allow Samba to share users home directories.
 # setsebool -P samba_enable_home_dirs 1
- 共有フォルダの読み書きを許可&br;
Allow samba to share any file/directory read/write.
 # setsebool -P samba_export_all_rw 1

** CentOS 7 [#SELinux_CentOS7]
 # setsebool -P samba_enable_home_dirs 1
 # setsebool -P samba_export_all_rw 1
 # chcon -t samba_share_t /home/Shared

* Windows PC 上の共有フォルダをマウント [#MountWinFolder]
- コマンド
 # mount -t cifs -o username=<Windowsのアカウント名> //<WindowsマシンのIPアドレス>/<フォルダ> <マウントポイント>
- エラー対応
-- エラーメッセージ
 # mount -f cifs username=user1 //WinPC1/Shared /mnt/WinPC1_Shared/
 mount: 間違ったファイルシステムタイプ、不正なオプション、
        //WinPC1/Shared のスーパーブロックが不正、コードページまたは
        ヘルパープログラムの未指定、或いは他のエラー
        (for several filesystems (e.g. nfs, cifs) you might
        need a /sbin/mount.<type> helper program)
        In some cases useful info is found in syslog - try
        dmesg | tail  or so
 # dmesg | tail
 CIFS VFS: cifs_mount failed w/return code = -22
-- 原因と対策&br;
cifs-utils パッケージがインストールされていないので、インストールする。
 # yum install cifs-utils
- リンク
-- [[Windows上のファイルにLinuxからアクセスするには(mount.cifs編) - @IT:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a004mountcifs.html]]
-- [[FedoraでSambaマウントする方法 - Kerosoft : Modus Operandi:http://mo.kerosoft.com/0150]]
-- [[UNIX系備忘録 | お勉強の軌跡:http://extra.pxt.jp/studylog/ja/unix/index.html]]
-- [[CentOS5の小技:http://tomo.ac/goodstream/rhel/centos/tips5.html]]

* リンク [#Link]
- [[Windowsファイルサーバー構築(Samba):http://centossrv.com/samba.shtml]] @ [[CentOSで自宅サーバー構築:http://centossrv.com/]]
- [[Sambaサーバ構築:http://d.hatena.ne.jp/Kimura/20110912/p1]] @ [[Kimura.Memo:http://d.hatena.ne.jp/Kimura/]]
- [[エレクトリック・ボディ・ビート: Unable to connect to CUPS server localhost:631:http://roserogue.blogspot.jp/2008/08/unable-to-connect-to-cups-server.html]]
-- [[Samba のエラー:http://d.hatena.ne.jp/umonist/20071101]] @ [[パソコン・メモメモ備忘録:http://d.hatena.ne.jp/umonist/]]
-- エラーメッセージ対応。
 getpeername failed. Error was Transport endpoint is not connected
 getpeername failed. Error was 通信端点が接続されていません
-- smb.conf&br;
プリンタを使用しない場合、printing を cups から bsd へ変更する。
 printing = bsd
- [[Samba 4によるWindowsネットワーク構築:ITpro:http://itpro.nikkeibp.co.jp/article/COLUMN/20131018/511929/]]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS