/opt/example フォルダへの書き込みアクセス権を持つ「スーパーユーザー」があります。 / optへの読み取りアクセス権を持つ「user」という一般ユーザーがいます。 "user"には/home/user/exampleディレクトリがあります。 「ユーザー」にはsudo権限があります。サンプルフォルダ全体を「/home/user/example」から「/opt/example」にコピーしたいと思います。既存のスレッドで次のオプションを試しましたが、そのうち何も機能しませんでした。
Linuxでは、ユーザーのファイルを他のユーザーにコピーする
ssh [email protected] 'sudo tar -C /home/example/ -czf - .' | tar -C /opt/example/ -xzf -
scp -r /home/example /opt/example/
sudo chown SuperUser /home/example
sudo -u SuperUser < /home/example sh -c 'cat > /opt/example'
cat ~/home/example | sudo -u SuperUser tee ~/opt/example >/dev/null
私はここに何か落ちたと思います。誰かが私を修正できますか?
答え1
ルートアカウントは、コピー中にファイルの所有権を保持し、すべてのファイルを読み取り、宛先ディレクトリに書き込むこともできます。
sudo cp -a /home/user/example /opt/
ターゲットが/opt/example
すでに存在する場合に使用できます。
sudo cp -a /home/user/example/. /opt/example/
あなたの試みは完全に正確ではありません。なぜなら...
ssh
リモートコンピュータに接続する場合scp
リモートシステムまたはリモートシステムからコピーする場合sudo chown
ターゲットディレクトリの所有権を変更しましたが、何もコピーしませんでした。sudo ... cat
ここで何が起こっているのか分かりません。cat | sudo
同様に
答え2
私はあなたがそれを試すことをお勧めします
sudo cp -p -R /home/user/example /opt/example