リモート SSH サーバーにバックアップするために rsync を設定しようとしていますが、次のエラーが発生します:
rsync: opendir "/home/backup/." failed: Permission denied (13)
これは rsync コマンドです:
sudo -u admin rsync -avzh /home/backup/ [email protected]:/home/sam/prodweb
管理者ユーザーはバックアップ フォルダー内の tar ファイルへの権限を持っているため、管理者ユーザーとしてコマンドを実行しようとしています。フォルダーが存在する設定は次のとおりです。
sudo ls -l /home/
total 4
drwx--x--x. 9 admin admin 172 Mar 19 12:49 admin
drwx--x--x. 3 backup backup 4096 Apr 8 03:10 backup
drwx------. 6 sam sam 228 Apr 3 15:08 sam
sudo ls -l /home/backup/
total 12902820
-rw-r----- 1 admin admin 214722560 Apr 6 03:10 admin.2020-04-06_03-10-12.tar
-rw-r----- 1 admin admin 214702080 Apr 7 03:10 admin.2020-04-07_03-10-13.tar
-rw-r----- 1 admin admin 214732800 Apr 8 03:10 admin.2020-04-08_03-10-13.tar
バックアップ ユーザーとしてコマンドを実行しようとしましたが、個々のファイルを読み取るときに同じエラーが発生します (それらは管理者が所有しているため)。これは vestaCP の設定です。別の解決策を思いついた方がいる場合に備えて。リモート sftp 設定を使用してみましたが、うまくいきませんでした。また、Rsync では ssh キーを使用できます。
問題は、フォルダーがバックアップ ユーザーの所有で、ファイルが管理者ユーザーの所有であるために発生していると思います。私はまだ Ubuntu と CentOS の初心者です。VestaCP バックアップの直後に毎朝 Cron からこのコマンドを実行するため、権限を変更しないようにしています。
ありがとう
答え1
管理者ユーザーにはディレクトリの内容を一覧表示する権限がありません/home/backup
。
権限を緩和します。たとえば、管理者ユーザーがグループのメンバーである場合は、admin
これを検討できます。
chgrp admin /home/backup
chmod g=rx /home/backup