#author("2018-08-27T09:14:22+09:00","","") #author("2018-08-27T09:17:09+09:00","","") [[CentOS7]] *sambaインストール [#fb4ba717] ''Linux''サーバーを''Windows''のファイルサーバーにする。ここでは、''Samba''を導入して以下のようなフォルダを作成する。 -ユーザー専用のフォルダ -全ユーザーで読み書き可能なフォルダ -特定ユーザーのみ読み書き可能なフォルダ -特定グループのみ読み書き可能なフォルダ -特定ユーザー以外は参照専用のフォルダ *Sambaインストール [#b353ad23] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# yum -y install samba &color(lime){← ''samba''インストール};| *Samba設定 [#t474473c] **Sambaサーバーアクセス用ユーザー作成 [#f6ca6105] |BGCOLOR(black):COLOR(white):|c |&color(lime){--新規にユーザーを作成する場合はここから--};| |[root@localhost ~]# useradd hogehoge &color(lime){← ''Linux''へユーザー新規登録(例としてhogehogeとする)};| |[root@localhost ~]# passwd hogehoge &color(lime){← パスワード設定};| |Changing password for user hogehoge. &br; New password: &color(lime){← パスワード応答}; &br; Retype new password: &color(lime){← パスワード応答(確認)}; &br; passwd: all authentication tokens updated successfully. &br; &br; &color(lime){--既存のユーザーをSambaサーバーアクセス用ユーザーとする場合はここから--};| |[root@localhost ~]# pdbedit -a hogehoge &color(lime){← ''Linux''に登録済のユーザーを''Samba''サーバーアクセス用ユーザーとして新規登録(例としてhogehogeとする)};| |new password: &color(lime){← パスワード応答}; &br; retype new password: ← パスワード応答(確認) &br; startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created. &br; Unix username: hogehoge &br; NT username: &br; Account Flags: [U ] &br; User SID: S-1-5-21-1397570601-503051572-2212552623-2000 &br; Primary Group SID: S-1-5-21-1397570601-503051572-2212552623-2001 &br; Full Name: &br; Home Directory: \\linux\hogehoge &br; HomeDir Drive: &br; Logon Script: &br; Profile Path: \\linux\hogehoge\profile &br; Domain: LINUX &br; Account desc: &br; Workstations: &br; Munged dial: &br; Logon time: 0 &br; Logoff time: 土, 14 12月 1901 05:45:51 GMT &br; Kickoff time: 土, 14 12月 1901 05:45:51 GMT &br; Password last set: 月, 13 12月 2004 16:06:00 GMT &br; Password can change: 月, 13 12月 2004 16:06:00 GMT &br; Password must change: 土, 14 12月 1901 05:45:51 GMT &br; Last bad password : 0 &br; Bad password count : 0 &br; Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF| **ホームディレクトリ作成 [#t2cff99e] |BGCOLOR(black):COLOR(white):|c |&color(lime){新規ユーザー対処};| |[root@localhost ~]# mkdir /etc/skel/samba &color(lime){← 新規ユーザー作成時に''samba''用ディレクトリ作成};| |&color(lime){既存ユーザー対処};| |[root@localhost ~]# vi mkhomedir.sh &color(lime){← 既存ユーザー''samba''用ディレクトリ作成スクリプト作成};| |#!/bin/bash &br; &br; for user in `ls /home` &br; do &br; id $user > /dev/null 2>&1 &br; [ $? -eq 0 ] && \ &br; [ ! -d /home/$user/samba ] && \ &br; mkdir /home/$user/samba && \ &br; chown $user:$user /home/$user/samba && \ &br; echo "/home/$user/samba create" &br; done| |[root@localhost ~]# sh mkhomedir.sh &color(lime){← 既存ユーザー''samba''用ディレクトリ作成スクリプト実行};| |[root@localhost ~]# rm -f mkhomedir.sh &color(lime){← 既存ユーザー''samba''用ディレクトリ作成スクリプト削除};| **共有ディレクトリ作成 [#l28b62a4] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# mkdir /home/samba &color(lime){← 全ユーザーでフルアクセスできる共有ディレクトリ作成};| |[root@localhost ~]# chown nobody:nobody /home/samba &color(lime){← 共有ディレクトリ所有者変更};| **Samba設定 [#x7e86b2a] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi /etc/samba/smb.conf &color(lime){← Samba設定ファイル編集};| |[global] &br; unix charset = UTF-8 &color(lime){← 追加(Linux側日本語文字コード)}; &br; dos charset = CP932 &color(lime){← 追加(Windows側日本語文字コード)}; &br; mangled names = no &color(lime){← 追加(長いファイル名の文字化け対処)}; &br; vfs objects = catia &color(lime){← 追加(上記対処でファイルアクセス不可になる一部文字の置換)}; &br; catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6 &color(lime){← 追加(上記対処でファイルアクセス不可になる一部文字の置換)}; &br; &br; # workgroup = NT-Domain-Name or Workgroup-Name &br; workgroup = MYGROUP &br; &color(lime){↓}; &br; workgroup = WORKGROUP &color(lime){← 変更(Windowsのワークグループ名を指定)}; &br; &color(lime){※マイコンピュータのプロパティ⇒コンピュータ名タブ内のワークグループ欄を参照}; &br; &br; ; hosts allow = 192.168.1. 192.168.2. 127. &br; hosts allow = 192.168.1. 127. &color(lime){← 追加(内部からのみアクセスできるようにする)}; &br; &br; # If you want to automatically load your printer list rather &br; # than setting them up individually then you'll need this &br; ; load printers = yes &color(lime){← 行頭に;を追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合}; &br; load printers = no &color(lime){← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合}; &br; disable spoolss = yes &color(lime){← 追加(プリンタ共有無効化)※''Samba''でプリンタを共有しない場合}; &br; &br; [homes] &br; comment = Home Directories &br; path = %H/samba &color(lime){← 追加(/home/ユーザー名/sambaをホームディレクトリにする)}; browseable = no &br; writable = yes &br; &color(lime){各ユーザー専用のごみ箱機能追加(ここから)}; &br; &color(lime){※ファイル削除時に自動的にごみ箱へ移動されるようにする}; &br; vfs objects = recycle &color(lime){← ごみ箱の有効化}; &br; recycle:repository = .recycle &color(lime){← ごみ箱のディレクトリ名(/home/ユーザー名/.recycle)}; &br; recycle:keeptree = no &color(lime){← ごみ箱へ移動時にディレクトリ構造を維持しない}; &br; recycle:versions = yes &color(lime){← 同名のファイルがごみ箱にある場合に別名で移動}; &br; recycle:touch = no &color(lime){← ごみ箱へ移動時にタイムスタンプを更新しない}; &br; recycle:maxsize = 0 &color(lime){← ごみ箱へ移動するファイルのサイズ上限(0:無制限)}; &br; recycle:exclude = *.tmp ~$* &color(lime){← ここで指定したファイルはごみ箱へ移動せずに即削除する}; &br; &color(lime){各ユーザー専用のごみ箱機能追加(ここまで)}; &br; &br; &color(lime){以下を最終行へ追加}; &br; [public] &br; comment = Public Stuff &br; path = /home/samba &br; public = yes &br; writable = yes &br; only guest = yes &br; &color(lime){共有ディレクトリのごみ箱機能追加(ここから)}; &br; &color(lime){※ファイル削除時に自動的にごみ箱へ移動されるようにする}; &br; vfs objects = recycle &color(lime){← ごみ箱の有効化}; &br; recycle:repository = .recycle &color(lime){← ごみ箱のディレクトリ名(/home/ユーザー名/.recycle)}; &br; recycle:keeptree = no &color(lime){← ごみ箱へ移動時にディレクトリ構造を維持しない}; &br; recycle:versions = yes &color(lime){← 同名のファイルがごみ箱にある場合に別名で移動}; &br; recycle:touch = no &color(lime){← ごみ箱へ移動時にタイムスタンプを更新しない}; &br; recycle:maxsize = 0 &color(lime){← ごみ箱へ移動するファイルのサイズ上限(0:無制限)}; &br; recycle:exclude = *.tmp ~$* &color(lime){← ここで指定したファイルはごみ箱へ移動せずに即削除する}; &br; &color(lime){共有ディレクトリのごみ箱機能追加(ここまで)};| |[global] &br; unix charset = UTF-8 &color(lime){← 追加(Linux側日本語文字コード)}; &br; dos charset = CP932 &color(lime){← 追加(Windows側日本語文字コード)}; &br; mangled names = no &color(lime){← 追加(長いファイル名の文字化け対処)}; &br; vfs objects = catia &color(lime){← 追加(上記対処でファイルアクセス不可になる一部文字の置換)}; &br; catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8, \ 0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6 &color(lime){← 追加(上記対処でファイルアクセス不可になる一部文字の置換)}; &br; &br; # workgroup = NT-Domain-Name or Workgroup-Name &br; workgroup = MYGROUP &br; &color(lime){↓}; &br; workgroup = WORKGROUP &color(lime){← 変更(Windowsのワークグループ名を指定)}; &br; &color(lime){※マイコンピュータのプロパティ⇒コンピュータ名タブ内のワークグループ欄を参照}; &br; &br; ; hosts allow = 192.168.1. 192.168.2. 127. &br; hosts allow = 192.168.1. 127. &color(lime){← 追加(内部からのみアクセスできるようにする)}; &br; &br; # If you want to automatically load your printer list rather &br; # than setting them up individually then you'll need this &br; ; load printers = yes &color(lime){← 行頭に;を追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合}; &br; load printers = no &color(lime){← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合}; &br; disable spoolss = yes &color(lime){← 追加(プリンタ共有無効化)※''Samba''でプリンタを共有しない場合}; &br; &br; [homes] &br; comment = Home Directories &br; path = %H/samba &color(lime){← 追加(/home/ユーザー名/sambaをホームディレクトリにする)}; &br; browseable = no &br; writable = yes &br; &color(lime){各ユーザー専用のごみ箱機能追加(ここから)}; &br; &color(lime){※ファイル削除時に自動的にごみ箱へ移動されるようにする}; &br; vfs objects = recycle &color(lime){← ごみ箱の有効化}; &br; recycle:repository = .recycle &color(lime){← ごみ箱のディレクトリ名(/home/ユーザー名/.recycle)}; &br; recycle:keeptree = no &color(lime){← ごみ箱へ移動時にディレクトリ構造を維持しない}; &br; recycle:versions = yes &color(lime){← 同名のファイルがごみ箱にある場合に別名で移動}; &br; recycle:touch = no &color(lime){← ごみ箱へ移動時にタイムスタンプを更新しない}; &br; recycle:maxsize = 0 &color(lime){← ごみ箱へ移動するファイルのサイズ上限(0:無制限)}; &br; recycle:exclude = *.tmp ~$* &color(lime){← ここで指定したファイルはごみ箱へ移動せずに即削除する}; &br; &color(lime){各ユーザー専用のごみ箱機能追加(ここまで)}; &br; &br; &color(lime){以下を最終行へ追加}; &br; [public] &br; comment = Public Stuff &br; path = /home/samba &br; public = yes &br; writable = yes &br; only guest = yes &br; &color(lime){共有ディレクトリのごみ箱機能追加(ここから)}; &br; &color(lime){※ファイル削除時に自動的にごみ箱へ移動されるようにする}; &br; vfs objects = recycle &color(lime){← ごみ箱の有効化}; &br; recycle:repository = .recycle &color(lime){← ごみ箱のディレクトリ名(/home/ユーザー名/.recycle)}; &br; recycle:keeptree = no &color(lime){← ごみ箱へ移動時にディレクトリ構造を維持しない}; &br; recycle:versions = yes &color(lime){← 同名のファイルがごみ箱にある場合に別名で移動}; &br; recycle:touch = no &color(lime){← ごみ箱へ移動時にタイムスタンプを更新しない}; &br; recycle:maxsize = 0 &color(lime){← ごみ箱へ移動するファイルのサイズ上限(0:無制限)}; &br; recycle:exclude = *.tmp ~$* &color(lime){← ここで指定したファイルはごみ箱へ移動せずに即削除する}; &br; &color(lime){共有ディレクトリのごみ箱機能追加(ここまで)};| *Samba起動 [#ta4dfc6e] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# systemctl start smb &color(lime){← Samba起動};| |[root@localhost ~]# systemctl start nmb &color(lime){← nmb起動};| |[root@localhost ~]# systemctl enable smb &color(lime){← Samba自動起動設定};| |[root@localhost ~]# systemctl enable nmb &color(lime){← nmb自動起動設定};| *Samba確認 [#lca5c04d] ''Windows''クライアント側で「スタート」⇒「ファイル名を指定して実行」(または''[Windows]''キー+''[R]''キー)⇒「名前」に「\\サーバーIPアドレス(例:\\192.168.1.30)」または「\\ホスト名(例:\\hogehoge)」を入力して「''OK''」ボタン押下し、''Samba''共有フォルダが表示されることを確認。 &color(red){※ユーザー名とパスワードの問い合わせには、''pdbedit''コマンドで作成したユーザー名、パスワードを入力する}; *ごみ箱内ファイルの自動削除設定 [#q5008866] 1週間ごとに30日間アクセスのないごみ箱内のファイルを自動的に削除するようにする |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# yum -y install tmpwatch &color(lime){← tmpwatchインストール};| |[root@localhost ~]# vi /etc/cron.weekly/recyclewatch &color(lime){← ごみ箱内ファイル自動削除スクリプト作成};| |#!/bin/bash &br; for user in `ls /home/` &br; do &br; if [ -d /home/$user/.recycle ]; then &br; tmpwatch -f 720 /home/$user/.recycle/ &br; fi &br; done| |[root@localhost ~]# chmod +x /etc/cron.weekly/recyclewatch &color(lime){← ごみ箱内ファイル自動削除スクリプトに実行権限付加};| *特定ユーザーのみ読み書き可能なフォルダを作成 [#bbcb7a4f] &color(red){※読み書き可能とするユーザーhogehoge1、hogehoge2はすでに登録済の前提}; |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# mkdir /home/private1 &color(lime){← 特定ユーザーのみ読み書き可能とするディレクトリ(例:''/home/private1'')を作成};| |[root@localhost ~]# chown nobody:nobody /home/private1 &color(lime){← 特定ユーザーのみ読み書き可能とするディレクトリの所有者を''nobody''に変更};| |[root@localhost ~]# vi /etc/samba/smb.conf &color(lime){← ''Samba''設定ファイル編集};| |&color(lime){下記を追加};| |[private1] &br; comment = private1 &br; path = /home/private1 &color(lime){← 特定ユーザーのみ読み書き可能とするディレクトリを指定}; &br; public = yes &br; writable = yes &br; only guest = yes &br; directory mask = 0700 &br; create mask = 0700 &br; valid users = hogehoge1 hogehoge2 &color(lime){← 読み書き可能とするユーザーを指定};| |[root@localhost ~]# systemctl reload smb &color(lime){← ''Samba''設定反映};| -hogehoge1、hogehoge2ユーザーで''private1''フォルダにファイル作成できること -hogehoge1、hogehoge2ユーザー以外で''private1''フォルダにアクセスできないこと *特定ユーザー以外参照専用のフォルダを作成 [#b3cc1e05] &color(red){※参照専用フォルダに書き込み可能とするユーザーhogehogeはすでに登録済の前提}; |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# mkdir /home/share &color(lime){← 参照専用とするディレクトリ(例:''/home/share'')を作成};| |[root@localhost ~]# chown nobody:nobody /home/share &color(lime){← 参照専用とするディレクトリの所有者をnobodyに変更};| |[root@localhost ~]# vi /etc/samba/smb.conf &color(lime){← Samba設定ファイル編集};| |&color(lime){下記を追加}; &br; [share] &br; comment = share &br; path = /home/share &color(lime){← 参照専用とするディレクトリを指定}; &br; public = yes &br; read only = yes &br; directory mask = 0700 &br; only guest = yes &br; create mask = 0700 &br; write list = hogehoge &color(lime){← 書き込み可能とするユーザーを指定};| |[root@localhost ~]# systemctl reload smb &color(lime){← ''Samba''設定反映};| -hogehogeユーザーのみ''share''フォルダにファイル作成できること -hogehogeユーザー以外は''share''フォルダにファイル作成できず、参照のみできること