web-dev-qa-db-ja.com

Linuxでユーザーから別のユーザーにファイルをコピーする

ホームディレクトリから別のユーザーのディレクトリにファイルをコピーしようとしています。他のユーザーがパスワードなしでSudoアクセスできる。私は次のようなことを試みました:

Sudo secondUser cp /home/firstUser/file /home/secondUser 

それを行う方法はありますか?また、rootアクセスがなく、secondUserのパスワードがわかりません。

2
tkyass

編集:ありis追加の設定なしでこれをすばやく簡単に行う方法。

cat ~firstUser/file | Sudo -u secondUser tee ~secondUser/file >/dev/null

これにより、すべてのファイルのcontentが正確に転送されます。ファイルの権限やタイムスタンプを元のファイルと一致させる必要がある場合は、chmodtouchを使用して個別に修正する必要があります。


元の回答:

ここでの問題は次のとおりです。

  • secondUserはホームディレクトリにアクセスできません。
  • secondUserのホームディレクトリにアクセスできません。

そのため、cpコマンドを自分で実行するかsecondUserとして実行するかに関係なく、ファイルのコピーを実行することはできません。

rootのアクセス権がないと言った場合、明白な答えは、/tmpなどの中間の読み取り可能な場所からファイルをコピーし、ファイルの権限を誰でも読み取り可能なものに変更することです。ただし、ファイル内のデータが機密情報である場合は、転送中にサーバー上の誰もがファイルを読み取ることができるため、これを実行したくない場合があります。 not機密データの場合は、次のようにします。

cp file /tmp/
chmod a+r /tmp/file
Sudo -u secondUser cp /tmp/file ~secondUser
rm /tmp/file

整理できる場合、より良いオプションは、あなたとsecondUserのみを含むグループを作成し、chgrp/tmp内のファイルのコピーをそのグループが所有するようにすることです。グループ。このようにして、ファイルをworld-readにする必要はありませんが、グループのみが読み取り可能です(chmod g+r /tmp/fileを使用)。ただし、groupadd自体はrootアクセスを必要とするため、これを配置するのは簡単ではありません。状況に応じて(頻繁にsecondUserと共有/コラボレーションしようとしている場合は、該当する可能性があります)、今後使用するためにこのグループを設定するよう管理者に依頼することを検討してください。

8
Wildcard

の問題:

Sudo -u secondUser cp /home/firstUser/file /home/secondUser 

secondUserになるとすぐに、/home/firstUser/fileにアクセスできなくなります。

解決策は、secondUserのファイルをfirstUserとして開き、secondUserにそのファイル記述子を継承させる必要があることです。

セキュリティ対策として、Sudo01、および2を除くすべてのファイル記述子を閉じます。ただし、この場合はこれで十分です(より多くのファイル記述子の継承を明示的に許可できます)。

Sudo -u secondUser < /home/firstUser/file sh -c 'cat > /home/secondUser/file' 

メタデータを保持できる、より一般的なソリューションの場合、tarまたはcpioなどの出力をSudoプロセスのstdinに置くことができます。

 tar c file1 file2 file3 | Sudo -u secondUser tar x -C ~secondUser
4
PSkocik

Sudoの-uフラグを使用すると、コマンドを実行するユーザーアカウントを指定できますが、他のユーザーのパスワードを知っている必要があります。

Sudo -u secondUser cp file /home/secondUser/file

他のユーザーのパスワードがわからない場合、これを行うことができない場合があります。これは、システムの通常の特権分離設計の一部であり、バイパスできないことが理想的です。

また、両方のユーザーアカウントがアクセスできる場所(/ tmpなど)にファイルを移動し、2番目のユーザーに自分のホームディレクトリに移動させることもできます。

1
GROND

できるよ

su secondUser

次に、2番目のユーザーとして作業を行います。

0
hodgkin-huxley