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のフォルダ内のファイルが表示されました。
ファイルの読み込みまでできます。書き込みは別途権限の設定が必要です。
関連の記事