====== Samba ======
===== 概要 =====
* Windows で使われているファイル共有サービスを *nix でも使えるようにしたサービス
===== インストール =====
$ sudo apt install samba
$ sudo smbpasswd -a USER
* ''smbpasswd'' で共有したディレクトリを開く際に尋ねられるユーザ名 (''USER'') とパスワードを設定する。
===== 設定 =====
* ''/etc/samba/smb.conf'' をエディタで開き、編集する。
==== 全体の設定 ====
* ''[global]'' 以下に記述する\\
dos charset = CP932
unix charset = UTF-8
dos filemode = yes
dos filetimes = yes
dos filetime resolution = yes
wide links = yes
follow symlinks = yes
unix extensions = no
client min protocol = SMB2
server min protocol = SMB2
acl allow execute always = yes
oplocks = no
blocking locks = no
map system = yes
map read only = yes
map hidden = yes
map archive = no
workgroup = WORKGROUP
server string = %h
* ''dos charset'': Windows 側で表示する文字コード
* ''unix charset'': *nix 側で表示する文字コード
* ''dos filemode = yes'': 他のユーザも書き込めるようにする
* 参考サイト: [[https://thinkit.co.jp/article/766/1?page=0%2C2 | 共有フォルダの運用パラメーター | Think IT(シンクイット)]]
* ''dos filetimes = yes'', ''dos filetime resolution = yes'' はタイムスタンプに関する設定
* 参考サイト: [[https://thinkit.co.jp/article/790/1?page=0%2C1 | 利用環境に合わせたパラメーター | Think IT(シンクイット)]]
* ''wide links = yes'', ''follow symlinks = yes'', ''unix extensions = no'' は、シンボリックリンクを有効にする設定
* 参考サイト: [[http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=samba%A5%B5%A1%BC%A5%D0%A1%BC%A4%CE%C0%DF%C4%EA#p10 | sambaサーバーの設定 - ふなWiki]]
* ''client min protocol = SMB2'', ''server min protocol = SMB2'': WannaCry 対策
* 参考サイト: [[http://roserogue.blogspot.com/2017/06/wannacrysmb1-samba.html | エレクトリック・ボディ・ビート: WannaCry対策をする(SMB1からの決別)]]
* ''acl allow execute always = yes'': 共有ディレクトリ上のプログラムを実行する (通常は実行しようとすると弾かれる)
* 参考サイト: [[https://kb.upken.jp/samba-share-execute.html | Samba4 の共有フォルダーにあるアプリケーションが起動できない事象の対処]]
* ''oplocks = no'', ''blocking locks = no''
* 参考サイト
* [[https://unix.stackexchange.com/questions/425934/windows-clients-will-not-refresh-linux-samba-file-locally-if-reading-file-at-int | command line - Windows clients will not refresh Linux samba file locally if reading file at intervals <= 10 seconds - Unix & Linux Stack Exchange]]
* [[https://www.kannon.link/fuku/index.php/2016/12/23/01-28/ | Windowsファイル共有(SMB)で「遅延書き込みデータの紛失」によりファイルが破損する | KISO-REN]]
* ''workgroup = WORKGROUP'': ワークグループ名
* ''server string = %h'': ネットワーク一覧で表示されるコンピュータ名 (''%h'' はマシンで設定されているホスト名になる)
==== 共有ディレクトリの設定 ====
[SHARE_DIRECTORY_NAME]
path = SHARE_DIRECTORY_PATH
force user = USER_NAME
force group = GROUP_NAME
create mode = 0664
directory mode = 0755
writeable = yes
browsable = yes
map system = yes
map read only = yes
map hidden = yes
map archive = no
;guest ok = yes
;guest only = yes
* ''[SHARE_DIRECTORY_NAME]'': 共有ディレクトリ名 (ネットワーク一覧からマシンを選択した後に表示されるディレクトリ一覧に表示される名前 ''SHARE_DIRECTORY_NAME'' を指定)
* ''path = SHARE_DIRECTORY_PATH'': 実際に共有されるディレクトリのパス ''SHARE_DIRECTORY_PATH'' を指定
* ''force user = USER'': Windows 側でファイルが作成された際に *nix 側でどのユーザ ''USER'' で作成したことにするかの指定
* ''force group = GROUP'': Windows 側でファイルが作成された際に *nix 側でどのグループ ''GROUP'' で作成したことにするかの指定
* ''create mode = 0664'': Windows 側でファイルが作成された際に *nix 側でどのパーミッションで作成したことにするかの指定 (この場合は ''644'' にする (chmod 実行時の番号の前に 0 を付けると良い))
* ''directory mode = 0755'': Windows 側でディレクトリが作成された際に *nix 側でどのパーミッションで作成したことにするかの指定 (この場合は ''755'' にする (chmod 実行時の番号の前に 0 を付けると良い))
* ''writeable = yes'': 共有ディレクトリ内に書き込みを許可する設定
* ''browsable = yes'': 共有ディレクトリ内を閲覧する許可する設定
* ''map system = yes'': Windows のファイルプロパティのシステム属性を保持する設定
* ''map read only = yes'': Windows のファイルプロパティの読み込み専用属性を保持する設定
* ''map hidden = yes'': Windows のファイルプロパティの隠し属性を保持する設定
* ''map archive = no'': Windows のファイルプロパティのアーカイブ属性を保持する設定
* 参考サイト: [[https://qiita.com/haoling/items/b306b23c41c7110e9e35 | sambaでファイルを上書きすると実行属性が付いてしまう場合の対処 - Qiita]]
* '';guest ok = yes'': 共有ディレクトリ選択時にユーザ名やパスワードを設定しないでアクセスできるようにする設定 (この場合、行のはじめに '';'' を付けてコメントアウトしているのでこの設定は無効化されている)
* '';guest only = yes'': ゲストユーザのみのアクセスを許可 (この場合、行のはじめに '';'' を付けてコメントアウトしているのでこの設定は無効化されている)
{{tag>Linux サーバ}}