私のウェブサイトのデータを新しいサーバーに移行しようとしていますが、このエラーは引き続き発生します。公開鍵アクセスを設定し、.txtファイルを使用してrsyncを完了できました。それから私はディレクトリを試したかったのですが、うまくいきませんでした。 rsyncを初めて使用するので、より多くの情報が必要な場合はお知らせください。
編集する: どちらもリモートサーバーで、以前はUbuntu 14.04.4で、新しいものはUbuntu 18.04.3です.
各ディレクトリに対してsudo権限がありますが、移動したいディレクトリを所有していない可能性があります。どのように答えを見つけるのかわかりません。
$ rsync -rt /var/www [email protected]:/home
rsync: recv_generator: mkdir "/home/www" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-config.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-mail.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wordpress") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-signup.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-trackback.php") failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
答え1
この部分は次のとおりです。
rsync: recv_generator: mkdir "/home/www" failed: Permission denied (13)
ユーザーにkiana
十分な権限がないと言っているようです/home
。書くそれに。
フォルダ権限を確認する方法
ls -l | grep home
リモートサーバーでこれを実行すると、/
フォルダの所有者が誰であるか、フォルダにどのアクセス権があるかを知らせます。 -フォルダの基準はそのフォルダ権限を持つことhome
です(詳細はroot:root
755
ここにフォルダとファイル権限があります。)
$ ls -l | grep home
drwxr-xr-x 3 root root 4096 21 mar 14.24 home
root
この出力は、グループを持つユーザーがフォルダを所有しroot
(d)フルアクセスhome
権(rwx)を持っていますが、グループ内の他のユーザーと他のroot
ユーザーには読み取り/実行権限(rx)がありますが、読み取り/実行権限(rx)はなしを示します。書く許可する。
- 権限を持つユーザーsudo
は、認証後に一時的にroot権限を持つことができることを意味します。これは便利ですrsync
。
結論として
root
あなたは仕事をしている実際のユーザーではないので(セキュリティ上の理由からそれをしてはいけません)、フォルダへの書き込み権限はrsync
ありません。ユーザーが書き込むことができる他の場所(など)/home
にWebサーバーデータを保存することをお勧めします。kiana
/tmp/
/opt/
答え2
別の解決策はrsyncコマンドを追加することです--rsync-path="sudo rsync"
。その場合、次の問題はリモートサーバーから入力できないことです(ttyもなく、対話型のプロンプトもありません)。少なくとも1つの解決策は次のとおりです。一時的にユーザーのsudoers行に設定してくださいNOPASSWD:
(安全ではありません:sudoパスワードはありません!)。 rsyncコマンドが実行された後、安全でない構成を削除できます。
中程度のセキュリティレベルでも悪用するには、まず誰かがサーバーにログインする必要がありますsudo
。しかし、長所と短所を比較してみてください。
答え3
/home ディレクトリ権限は通常ルートのみ書き込み可能です。
たとえば、マイコンピュータでlsを実行すると、ルート/ルートが表示されます。
$ ls -laF /home
total 12
drwxr-xr-x 3 root root 4096 Aug 20 2018 ./
drwxr-xr-x 24 root root 4096 Sep 3 09:00 ../
最善の方法は、実行中のシステムにSSHを介して接続し、/ homeにディレクトリを作成することです。
#Note the sudo, or you'd have to su to root
sudo mkdir /home/www
#Then change the ownership so the user kiana can write to it:
sudo chown kiana:kiana /home/www