Table of Contents
インストール
- Linux マシンをホストとして公開する場合
# yum install samba
- Windows 上の共有フォルダを Linux マシンにマウントする場合は追加のパッケージが必要
# yum install samba-client cifs-utils
ユーザ設定
- Samba用ユーザの確認
# pdbedit -L
- 既存のLinuxユーザに対しSambaで接続するためのパスワードを追加する。
# pdbedit -a -u <ユーザ名>
グループ設定
- 共有フォルダ管理グループ(SmbAdmin)を作成し、既存ユーザ user1 を SmbAdmin へ追加
# groupadd SmbAdmin # usermod -G SmbAdmin -a user1
- グループ SmbUsers に属しているユーザすべてに共有フォルダへのアクセスを許可する場合
# groupadd SmbUsers # usermod -G SmbUsers -a <ユーザ名>
共有用フォルダ
- 共有フォルダ自体はオーナーとなるユーザはなし(nobody)。
- SmbUsers グループに属するユーザは読み書き可能。
管理グループ(SmbAdmin)に属するユーザがファイル作成/削除できるよう既定の拡張ファイル属性を設定。
# cd /home # mkdir Shared # chown nobody:SmbUsers Shared # chmod 777 Shared # setfacl -m d:g:SmbAdmin:rwx /home/Shared
- 8.3. Setting Default ACLs
設定
- /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.1. 10.8.1. 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)
サービス設定
CentOS 6
# 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
# systemctl enable smb nmb
# systemctl restart smb nmb
ファイアウォール設定
CentOS 6
- 「システム/管理/ファイアーウォール」を起動。
# system-config-firewall
- 「カスタマイズ」を選択。
- 「Samba」「Sambaクライアント」にチェックを入れる。
- 「閉じる」を選択。
- 「OK」を選択。
- ファイアウォール設定を変更する旨の警告が出るので「はい」を選択。
- IPv6 を無効にしていると ip6tables の設定に失敗した旨のエラーメッセージが表示されるが、iptables については設定されている。
CentOS 7
- OpenVPN 経由でのアクセスを許可
- /etc/firewalld/services/samba-vpn.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"/> </service>
- サービス登録
# firewall-cmd --permanent --add-service=samba-vpn # firewall-cmd --reload
SELinux設定
CentOS 6
- ユーザホームディレクトリのアクセスを許可
Allow Samba to share users home directories.# setsebool -P samba_enable_home_dirs 1
- 共有フォルダの読み書きを許可
Allow samba to share any file/directory read/write.# setsebool -P samba_export_all_rw 1
CentOS 7
# setsebool -P samba_enable_home_dirs 1
# setsebool -P samba_export_all_rw 1
# chcon -t samba_share_t /home/Shared
Windows PC 上の共有フォルダをマウント
- コマンド
# 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
- 原因と対策
cifs-utils パッケージがインストールされていないので、インストールする。# yum install cifs-utils
- エラーメッセージ
- リンク
リンク
- Windowsファイルサーバー構築(Samba) @ CentOSで自宅サーバー構築
- Sambaサーバ構築 @ Kimura.Memo
-
エレクトリック・ボディ・ビート: Unable to connect to CUPS server localhost:631
- Samba のエラー @ パソコン・メモメモ備忘録
- エラーメッセージ対応。
getpeername failed. Error was Transport endpoint is not connected getpeername failed. Error was 通信端点が接続されていません
- smb.conf
プリンタを使用しない場合、printing を cups から bsd へ変更する。printing = bsd
- Samba 4によるWindowsネットワーク構築:ITpro