ある目的から別の目的にファイルをコピーする方法は?

ある目的から別の目的にファイルをコピーする方法は?

私は非常に少数の開発者が使用しているWebサーバーを持っています。ホームページをwebsite使用中です。他のユーザーはuser1user2しばらくお待ちください。 sudoアクセス権を付与しましたuser1user2..アクセスできますwebsite

今私が経験している問題は、website一部のスクリプトが直接読み込みを許可していないため、ユーザーがスクリプトをコピーできないことですusers。 sudo cpを使用しようとすると、ディレクトリへの書き込み権限がwebsiteないため失敗します。users

一部のセキュリティシーズンのため、ファイル権限を変更したくありません。 tarを使ってこれを行うことができることをどこかで見ましたが、それは理解できませんでした。

誰でも助けることができますか?

ありがとうございます!

ベストアンサー1

user1次のようなことができます

sudo -u website cat ~website/somefile > ~user1/somefile

~user1/somefileshell() は、それを実行するユーザーによって最初に作成され、user1catのように実行されます。website

複数のファイルに対して同じ方法で tar(1) を使用できます。

sudo -u website tar cf - ~website/foo ~website/bar | tar xf -

彼のディレクトリで実行すると、user1標準出力にtarアーカイブが「生成」され、別websiteのtar(sudoがないため、シェルを実行するユーザーと同じユーザーとして実行、つまりuser1)はそのダミーtarファイルを現在のディレクトリ()に書き込むことができますuser1

修正するtarはファイルにリンクするサブディレクトリを作成するため、-Ctarが起動する前に指定されたディレクトリに移動するように指定することでこの動作を減らすことができます。

sudo -u website tar -C ~website -cf - foo bar | tar xf -

このようにして、 foobar先行サブディレクトリなしで現在のディレクトリに作成されます(ただし、追加された場合は下のサブディレクトリとしてblah/baz作成されます)。blahbaz

おすすめ記事