USBメモリをSambaで共有する設定を行ったが、多くのUSBメモリはVFATフォーマットであるため、Linux上のSambaやApacheといったソフトウェアの権限管理と適合しない。そのため、まずUSBメモリをext4フォーマットしてから行う。
ext4にフォーマットしたUSBメモリをマウントするため、fstabを設定する。
LABEL=USBDISK /media/pi/USBDISK ext4 defaults,noatime,nofail 0 0
fstabの設定が正しいことをコマンドで確認する。
sudo findmnt --verify --verbose
再起動もしくはマウントテストを行う
sudo mount -a
USBメモリにSambaで共有するディレクトリを作成する。
mkdir /media/pi/USBDISK/TEMP ls -ld /media/pi/USBDISK/TEMP
Sambaで共有するディレクトリの権限を、下記になるように設定する。
ls -ld /media/pi/USBDISK/ /media/pi/USBDISK/TEMP/ drwxr-xr-x 4 root root 4096 7月 19 11:25 /media/pi/USBDISK/ drwxrwxrwx 2 root root 4096 7月 19 12:05 /media/pi/USBDISK/TEMP/
今回はSambaだけでなくApache2からのアクセスを可能にするために、他者(others)へx権限を設定する。
Sambaの設定ファイルを下記のように構成する。
include = /etc/samba/includes.conf
# Maps unknown or invalid users to the guest account during authentication.
map to guest = Bad User
# Defines 'nobody' as the Unix user used for guest access.
guest account = nobody
include = /etc/samba/smb.d/share-temp.conf
[TEMP] path = /media/pi/USBDISK/TEMP browseable = yes read only = no guest ok = yes force user = nobody create mask = 0777 directory mask = 0777
設定チェック
testparm
Samba 再起動
sudo systemctl restart smbd