Sambaでサーバから大量ファイルコピー
借りている二つのVPSの一方からもう一方に大量のファイルをコピーする必要が出てきた。
両方のVPS共にtailscaleのVPNに入っているので、面倒な認証の必要の無いものが欲しかった。しかし、これが以外に面倒。
ftpは簡単だが、一つずつしかコピーできないので却下。rcpというものがあったらしいが、暗号化されていないとのことで、現代ではどうやってインストールするのかさえわからず。rcoを使うには、rsh, rsh-serverをまずインストールしろと書いてあるところがあるが、それさえもインストール方法がわからず。もちろん、rsyncやらscpやらは、認証が必要になってくるし、rsyncを使うまでも無い。
というわけで、どうなるかわからないが、Sambaを使ってみた。
インストールと設定
How to Setup Samba Server in RHEL, Rocky Linux and AlmaLinuxを参考にした。
dnf install samba samba-common samba-client
/etc/samba/smb.confは以下とした。Samba4でパスワード無し接続共有より。
[global]
map to guest = Bad User
log file = /var/log/samba/%m
log level = 1
[public]
path = /home/public
read only = no
guest ok = yes
そして
mkdir /home/public
chown nobody:nobody /home/public
Sambaを起動する
systemctl start smb
systemctl enable smb
この後で、同じVPN上のWindowsマシンからアクセスさせてみると、問題なく接続できた。もちろん、外部からはアクセスできない。
ただし、Tailscaleの使い方、その6:レンタルVPSサーバにアクセスするを参照のこと。
rootのディレクトリを見れるようにする
設定を以下のように変え、smbを再起動してみる。
[global]
map to guest = Bad User
log file = /var/log/samba/%m
log level = 1
[nopublic]
path = /home/nopublic
guest account = root
read only = no
guest ok = yes
rootのフォルダを作成
mkdir /home/nopublic
systemctl restart smb
これでrootの持ち物も、少なくとも閲覧ができる。書き込みが可能になる方法は不明。とりあえずコピーできれば良いので放置。
コピー先のサーバからアクセス
コピー先のサーバに移る。
dnf install samba-common samba-client cifs-utils
マウントポイントを作成
mkdir /mnt/source-server
マウントする。
mount -t cifs -u username=root,password= //コピー元サーバ/nopublic /mnt/source-server
確認
ls -l /mnt/source-server
これで簡単にコピーできるはず、と思ってやってみると、以下のエラーが出る。
cp: cannot open '/mnt/***/***/filter/c19cd1b7aed918fff3edfeb8d557d621463c902a8b5988c67d059c0e00e1d095.hs' for reading: Permission denied
cp: cannot access '/mnt/****/****/***/****': Permission denied
しかし、コピー元でtar化して、それをコピーして解凍すると正常だ。何か設定が間違っているのだろうか?
ディスカッション
コメント一覧
まだ、コメントがありません