Linuxでは、ユーザーのファイルを他のユーザーにコピーする

Linuxでは、ユーザーのファイルを他のユーザーにコピーする

私のホームディレクトリのファイルを別のユーザーのディレクトリにコピーしようとしています。他のユーザーにsudoアクセス権があり、パスワードはありません。私は次のことをしようとします:

sudo secondUser cp /home/firstUser/file /home/secondUser 

これを行う方法はありますか?また、rootアクセス権がなく、2人目のユーザーのパスワードもわかりません。

答え1

編集:はいはい追加設定なしでこれを行うための迅速で簡単な方法です。

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

すべてのファイルが転送されます。コンテンツまさに。元のファイルと一致するファイル権限および/またはタイムスタンプが重要な場合は、それぞれを使用して変更する必要がchmodありますtouch


元の答え:

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

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

したがって、cpコマンドを直接実行しても、実行しても、ファイルのsecondUserコピーを実行することはできません。

アクセス権がないと言うと、root確かな答えは、誰でも読める中間の場所からファイルをコピーし、/tmpファイルの権限を誰でも読めるように変更することです。ただし、ファイル転送中にサーバー上のすべてのユーザーがファイルを読み取ることができるため、ファイル内のデータが機密になった場合はこれを行わないことがあります。もしそうならいいえ機密データの場合は、次の操作を行います。

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

より良いオプションは、あなただけが含まれているグループを作成し、そのグループに属するファイルのコピーを所有することsecondUserです。これにより、ファイルを作成する必要がなくなります。chgrp/tmp世界- 読むことはできますが、グループ(使用chmod g+r /tmp/file)のみ読むことができます。しかし、groupaddそれ自体がルートアクセスを必要とするので、整理は容易ではありません。状況に応じて(頻繁に共有/共同作業を試みる場合に適用される場合がありますsecondUser)、後で使用するために管理者にこのグループを設定するように依頼することをお勧めします。

答え2

問題は次のとおりです。

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

いったんアクセスするとsecondUserアクセスできません/home/firstUser/file

secondUser解決策は、ファイルを別の名前で開き、そのファイル記述子をfirstUser継承する必要があることです。secondUser

安全対策として、およびを除くすべてのファイル記述子は閉じられますsudo。ただし、この場合はこれが必要なすべてです(より多くのファイル記述子の継承を明示的に許可できます)。012

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

tarメタデータを保存できるより一般的なソリューションのために、次の出力をプロセスのcpio最後に配置できます。sudostdin

 tar c file1 file2 file3 | sudo -u secondUser tar x -C ~secondUser

答え3

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

sudo -u secondUser cp file /home/secondUser/file

他のユーザーのパスワードがわからない場合は、これを実行できない可能性があります。これはシステムの一般的な権限分離設計の一部であり、理想的にはバイパスできません。

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

答え4

ファイルを/ tmpにコピーし、 su2番目のユーザーの権限を777に変更します。 / tmpからファイルをコピーします。
コマンドがsudo secondUser無効です。

関連情報