Sambaの設定



●Sambaのインストール

 参考URL:Windowsファイルサーバー構築(Samba)
 参考URL:sambaサーバ構築 centos7
# yum install samba samba-client samba-common -y


●Sambaサーバーアクセス用ユーザー作成

 Sambaサーバーアクセス用ユーザーを作成します。
----------  新規にユーザーを作成する場合はここから  ----------
Linuxへユーザー新規登録
# useradd smbuser
パスワード設定
# passwd smbuser
Changing password for user smbuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

----------  既存のユーザーをSambaサーバーアクセス用ユーザーとする場合はここから  ----------
# pdbedit -a smbuser
new password:
retype new password:
Unix username:        smbuser
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-4111753210-2934671219-1498331940-1001
Primary Group SID:    S-1-5-21-4111753210-2934671219-1498331940-513
Full Name:            smbuser
Home Directory:       \\smbserver\smbuser
HomeDir Drive:        
Logon Script:         
Profile Path:         \\smbserver\smbuser\profile
Domain:               Linux
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    土, 01  8月 2020 02:01:44 JST
Password can change:  土, 01  8月 2020 02:01:44 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


●ホームディレクトリの作成

 新規ユーザーの場合
# mkdir /etc/skel/samba
既存ユーザーの場合
# vi mkhomedir.sh
#!/bin/bash

for user in `ls /home`
do
    id $user > /dev/null 2>&1
    [ $? -eq 0 ] && \
    [ ! -d /home/$user/samba ] && \
    mkdir /home/$user/samba && \
    chown $user:$user /home/$user/samba && \
    echo "/home/$user/samba create"
done
 既存ユーザーsamba用ディレクトリ作成スクリプト実行
# sh mkhomedir.sh
 既存ユーザーsamba用ディレクトリ作成スクリプト削除
# rm -f mkhomedir.sh


●共有ディレクトリの作成

 共有ディレクトリを作成します。
# chmod -R 0777 /share
# chown -R nobody:nobody /share


●Sambaの設定

 設定ファイルのバックアップまたはサンプルファイルコピー後、編集します。
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bk
または
# cp -p /etc/samba/smb.conf.example /etc/samba/smb.conf
# vi /etc/samba/smb.conf
 設定ファイルの内容
[global]
	workgroup = BIGBANG
	server string = Samba Server %v
	# ブラウズリストでコンピュータ名の横に表示されるテキスト
	netbios name = linux
	# セキュリティレベル(デフォルトを採用)。クライアントがどのように Samba に応答するかを決めるもの
	security = user
	# 内部からのみアクセスできるようにする
	hosts allow = 192.168.0.
	# このパラメーターは、SECURITY = security モードが security = share 以外の時、すなわち user、server、 domain のときにのみ有用である。
	# 存在するユーザーに対する不正なパスワードによるログイン要求は拒否する。
	# 指定されたユーザーが存在しなかった場合はゲストログインとして扱い、 guest account で指定されたアカウントにマッピングする。
	map to guest = bad user
	dns proxy = no

	# 管理者はユーザーとグループ情報の格納に、どのような機構(backend)を使用するか
	passdb backend = tdbsam
	# inux側日本語文字コード
	unix charset = UTF-8
	# Windows側日本語文字コード
	dos charset = CP932
	# 長いファイル名の文字化け対処
	mangled names = no
	# 上記対処でファイルアクセス不可になる一部文字の置換
	vfs objects = catia
	# 上記対処でファイルアクセス不可になる一部文字の置換
	catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6

[homes]
	comment = Home Directories
	# /home/ユーザー名/sambaをホームディレクトリにする
	path = %H/samba
	browseable = No
	#read only = No
	#inherit acls = Yes
	writable = yes
	# 各ユーザー専用のごみ箱機能追加(ここから)
	# ※ファイル削除時に自動的にごみ箱へ移動されるようにする
	# ごみ箱の有効化
	vfs objects = recycle
	# ごみ箱のディレクトリ名(/home/ユーザー名/.recycle)
	recycle:repository = .recycle
	# ごみ箱へ移動時にディレクトリ構造を維持しない
	recycle:keeptree = no
	# 同名のファイルがごみ箱にある場合に別名で移動
	recycle:versions = yes
	# ごみ箱へ移動時にタイムスタンプを更新しない
	recycle:touch = no
	# ごみ箱へ移動するファイルのサイズ上限(0:無制限)
	recycle:maxsize = 0
	# ここで指定したファイルはごみ箱へ移動せずに即削除する
	recycle:exclude = *.tmp ~$*
	# 各ユーザー専用のごみ箱機能追加(ここまで)

[share]
	#共有させるディレクトリ
	path = /share/
	#マイネットワークに表示させるか否か
	browsable =yes
	#書き込み可能かどうか
	writable = yes
	#ゲストユーザのログインが可能かどうか
	guest ok = yes
	#読込みのみとするか
	read only = no
	# 共有ディレクトリのごみ箱機能追加(ここから)
	# ※ファイル削除時に自動的にごみ箱へ移動されるようにする
	# ごみ箱の有効化
	vfs objects = recycle
	# ごみ箱のディレクトリ名(/home/ユーザー名/.recycle)
	recycle:repository = .recycle
	# ごみ箱へ移動時にディレクトリ構造を維持しない
	recycle:keeptree = no
	# 同名のファイルがごみ箱にある場合に別名で移動
	recycle:versions = yes
	# ごみ箱へ移動時にタイムスタンプを更新しない
	recycle:touch = no
	# ごみ箱へ移動するファイルのサイズ上限(0:無制限)
	recycle:maxsize = 0
	# ここで指定したファイルはごみ箱へ移動せずに即削除する
	recycle:exclude = *.tmp ~$*
	# 共有ディレクトリのごみ箱機能追加(ここまで)

[SecTest]
	path = /home/sectest
	valid users = @smbuser
	guest ok = no
	writable = yes
	browsable = yes


●smb.confファイルの構文チェック

 smb.confファイルの構文が正しいかどうかをチェックします。
# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions
(ここでReturnキーを押下すると結果が表示されます。)


※エラーの場合の例
Load smb config files from /etc/samba/smb.conf
set_variable_helper(): value is not boolean!
Error loading services.
 設定ファイルに問題などがある場合はWARNING・ERRORなどの情報が出力されますので、確認して下さい。

●Sambaの起動

 自動起動の設定及び起動を実施します。
# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl restart smb.service
# systemctl restart nmb.service


●Sambaが通信できるようにFirewallを設定する

 Linux側でsambaの通信が行えるよう、firewallの設定を変更する。
# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload


●SELinuxの設定変更

 SELinuxが有効の場合、SELinuxの設定を変更し、sambaの利用を許可する。
# chcon -t samba_share_t /samba/share


●ごみ箱内ファイルを自動削除する設定

 1週間ごとに30日間アクセスのないごみ箱内のファイルを自動的に削除するようにします。
# yum -y install tmpwatch
 ごみ箱内ファイル自動削除スクリプトの作成。
# vi /etc/cron.weekly/recyclewatch
#!/bin/bash
for user in `ls /home/`
do
    if [ -d /home/$user/.recycle ]; then
        tmpwatch -f 720 /home/$user/.recycle/
    fi
done
 ごみ箱内ファイル自動削除スクリプトに実行権限を付加します。
# chmod +x /etc/cron.weekly/recyclewatch


●特定ユーザーのみ読み書き可能なフォルダを作成

 ただし、読み書き可能とするユーザーsmbuser1、smbuser2はすでに登録済とします。
 特定ユーザーのみ読み書き可能とするディレクトリ(例:/home/private1)を作成します。
# mkdir /home/private1
 特定ユーザーのみ読み書き可能とするディレクトリの所有者をnobodyに変更します。
# chown nobody:nobody /home/private1
 Samba設定ファイルを編集します。
# vi /etc/samba/smb.conf
下記を追加します。
[private1]
   comment = private1
   path = /home/private1
   public = yes
   writable = yes
   only guest = yes
   directory mask = 0700
   create mask = 0700
   valid users = smbuser1 smbuser2
 Sambaを再起動します。
# systemctl reload smb


●特定グループのみ読み書き可能なフォルダを作成

 特定グループのみ読み書き可能とするディレクトリ(例:/home/private2)を作成します。
# mkdir /home/private2
 特定グループのみ読み書き可能とするディレクトリの所有者をnobodyに変更します。
# chown nobody:nobody /home/private2
 読み書き可能とするグループ(例:centos)を登録します。
# groupadd centos
 読み書き可能とするユーザー(例:centos1)をcentosグループへ登録します。
# usermod -G centos centos1
 読み書き可能とするユーザー(例:centos2)をcentosグループへ登録します。
# usermod -G centos centos2
 Samba設定ファイル編集します。
# vi /etc/samba/smb.conf
下記を追加
[private2]
   comment = private2
   path = /home/private2
   public = yes
   writable = yes
   only guest = yes
   directory mask = 0700
   create mask = 0700
   valid users = @centos
 Sambaに設定を反映させます。
# systemctl reload smb




 
 
 
 
 



 
 
 
 
 

見出し2