回答:
sudo
特権があると仮定すると、次のコマンドが実行されます。
sudo cp /home/USER1/FNAME /home/USER2/FNAME && sudo chown USER2:USER2 /home/USER2/FNAME
ファイルをUSER1からUSER2にコピーしてから、/ home / USER2のコピーの所有者をUSER2に変更します
sudo
特権がない場合、2人のユーザーは、USER1ディレクトリに対する読み取り権限と、USER2ディレクトリに対する書き込み権限を持っていることを確認する必要があります。これらのアクセス権がある場合は、次のコマンドを入力できます。
cp /home/USER1/FNAME /home/USER2/FNAME
これにより問題のファイルがコピーされますが、USER2は適切なアクセス許可を取得するまでファイルを操作できない場合があります。
sudo特権を持っていないが、2人のユーザーでログインできる場合は、localhostでscpを使用できます。
scp file1 user2@localhost:/home/user2/
USER1として:
cp [filename] /tmp
chmod 777 /tmp/[filename]
USER2として:
cp /tmp/[filename] .
USER1として:
rm /tmp/[filename]
sshがインストールされていないか、キー/シークレットを共有したくないと仮定します。
user1がgroup1にあり、user2がgroup2にあり、user1!= user2とgroup1!= group2の両方であるとします。
共有グループgroup3sを作成します。
addgrp group3
user1とuser2の両方をgroup3sに追加します。
1人のユーザーが所有しているが、group3sのグループ所有権がある相互にアクセス可能な場所にディレクトリを作成します。
#as user1,
mkdir $place/shared && chown user1.group3s $place/shared && chmod 770 $place/shared;
#as user1 or user2,
cp $file $place/shared && chgrp $place/shared/$file && chmod 660 $place/shared/$file
しかし、新しい共有グループを作成して、両方のユーザーをそのグループに入れることはできないとしますか?
ディレクトリを作成し、770のアクセス許可を付与します。
mkdir $place/shared && chown user1.group1 $place/shared && chmod 770 $place/shared;
次に、root / adminとして、グループの所有権を他のユーザーのグループに変更し、
sudo bash
chgrp group2 $place/shared && chmod g+s $place/shared
コマンドchmod g + sは、ディレクトリに配置されたファイルのグループ所有権がgroup2に設定されるようにsetgidビットを設定します。
ここの他のすべての回答には、rootアクセスが必要であり、同じマシン上のすべてのユーザーがファイルをコピーできるようにするか、パスワード共有が必要です。しないメソッドは次のとおりです。
きUSER2
、以下のコマンドを実行します(のは彼ボブを呼びましょう)(あなたは置き換えることができ/tmp
、両方のユーザーがへの書き込み権限を持っていることを任意のディレクトリではなく、/tmp
デフォルトでは、このプロセスを破壊するから、悪意のあるユーザーを防止する、粘着性があるので、理想的である。Aディレクトリが所有します世界的に読み取り可能なボブによっても動作します):
[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt
これにより、誰でも書き込み可能なファイルが作成されますが、読み取りはできません。
次にUSER1
(アリスに電話しましょう)実行します(妄想している場合は、アリスが最初に権限をチェックして、ファイルがボブに所有されていることを確認できます)。
[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt
これにより、の内容が上書きされます/tmp/test.txt
。ファイルの整合性をチェックする場合、Aliceはファイルのハッシュも生成する必要があります。例えば:
[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1
代わりに、ファイル、またはファイルの整合性を保証するその他の方法にデジタル署名することができます。
最後に、ボブはファイルを移動し、所有権を取得します。
[bob@computer ~]$ mv /tmp/test.txt "$HOME"
[bob@computer ~]$ chmod 600 "$HOME/test.txt"
ボブは、必要に応じて整合性を確認できます。その場合、彼はAliceのみがに書き込めることを確認する必要があります/tmp/test.txt
。
[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")
ファイルが正しくコピーされた場合、出力は表示されません。
あるユーザーを別のユーザーにコピーする前に、suユーザーとしてログインし、cpコマンドを使用する必要があります。
sudo cp /home/shyam/Desktop/sparkhadoop_2.11-1.0.jar /home/hadoop/Desktop
USER2
れroot
ず、そのままになります。-1