AWS sambaでWindowsとLinuxのファイル共有をする

AWSのsambaでWindowsとLinuxのファイル共有をするサンプルです。

目次

サンプル 目的
  セキュリティポリシーのインバウンドルールにsmbを追加
  sambaをインストールする
samba用のユーザとフォルダを作成する
sambaの設定ファイルを修正してサービスを起動
Windows側からファイルを確認する

目的

  • sambaでWindowsサーバーからLinuxのディレクトリ内のファイルを参照できるようにします。

 

セキュリティポリシーのインバウンドルールにsmbを追加

LinuxがあるEC2のセキュリティポリシーのインバウンドルールにsmbを追加します。
ポートは445です。

 

sambaをインストールする

1.Tera TermのSSHでEC2に接続します。
Tera TermのSSHでEC2に接続する

 

2.sambaをインストールします。

sudo yum -y install samba

インストール済みかの確認は、yum list installed | grep sambaで行います。
インストール済みの場合はsambaの行が表示されます。

 

samba用のユーザとフォルダを作成する

1.ユーザーを作成します。

[ec2-user@ip-10-0-10-4 ~]$ sudo useradd testSamba
[ec2-user@ip-10-0-10-4 ~]$ sudo passwd testSamba
Changing password for user testSamba.
New password:

 

2.作成したユーザにSamba用のパスワードを設定します。

[ec2-user@ip-10-0-10-4 ~]$ sudo smbpasswd -a testSamba
New SMB password:
Retype new SMB password:
Added user testSamba.
[ec2-user@ip-10-0-10-4 ~]$

 

3.Samba用のフォルダを作成します。

[ec2-user@ip-10-0-10-4 /]$ pwd
/
[ec2-user@ip-10-0-10-4 /]$ sudo mkdir testsamba1
[ec2-user@ip-10-0-10-4 /]$

 

4.確認用のファイルを作成します。

[ec2-user@ip-10-0-10-4 /]$ pwd
/
[ec2-user@ip-10-0-10-4 /]$ cd testsamba1/
[ec2-user@ip-10-0-10-4 testsamba1]$ sudo touch testfile1.txt

 

sambaの設定ファイルを修正してサービスを起動

1.Sambaの設定ファイル(smb.conf)のバックアップを取ります。

[ec2-user@ip-10-0-10-4 ~]$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.org
[ec2-user@ip-10-0-10-4 ~]$ ls -l /etc/samba/
total 24
-rw-r--r-- 1 root root    20 Feb  2  2022 lmhosts
-rw-r--r-- 1 root root   706 Feb  2  2022 smb.conf
-rw-r--r-- 1 root root 11327 Feb  2  2022 smb.conf.example
-rw-r--r-- 1 root root   706 Aug 20 13:40 smb.conf.org
[ec2-user@ip-10-0-10-4 ~]$

 

2.Sambaの設定ファイル(smb.conf)を編集します。

[ec2-user@ip-10-0-10-4 /]$ sudo vi /etc/samba/smb.conf

ファイルの末尾に以下を追加します。

[testsamba1]
path = /testsamba1
writable = yes

 

3.sambaを開始します。

[ec2-user@ip-10-0-10-4 /]$ sudo systemctl start smb.service
[ec2-user@ip-10-0-10-4 /]$ systemctl status smb.service
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-08-20 14:06:48 JST; 5s ago

1行目は、sambaを開始しています。
2行目は、sambaの状態を確認しています。
5行目は、Active:activeなので稼働していることがわかります。

systemctl status smb.service サービスの状態を確認する
sudo systemctl start smb.service サービスを起動する
sudo systemctl stop smb.service サービスを停止する
sudo systemctl restart smb.service サービスを再起動する
sudo systemctl enable smb.service サービス自動起動を有効にする
sudo systemctl disable smb.service サービス自動起動を無効にする
systemctl is-enabled smb.service サービス自動起動の設定を確認する

 

修正後のsmb.confです。28-30行目を追記しました。

[global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
[testsamba1]
path = /testsamba1
writable = yes

 

Windows側からファイルを確認する

リモートデスクトップ接続でWindowsのEC2にログインします。

1.Windowsのエクスプローラーのパスの欄に以下を入力します。

\\IPアドレス\作成したフォルダ名

\\52.194.245.229\testsamba1

 

2.ユーザー名とパスワードを入力します。

 

3.エクスプローラーにlinuxのフォルダ内のファイルが表示されました。

ファイルの読み込みまでできます。書き込みは別途権限の設定が必要です。

関連の記事

AWS IAMユーザを作成するサンプル

△上に戻る