Jede andere Antwort hier erfordert Root-Zugriff, ermöglicht jedem Benutzer auf demselben Computer, die Datei zu kopieren, oder erfordert eine Kennwortfreigabe. Hier ist eine Methode, die dies nicht tut:
USER2
Lassen Sie (nennen wir ihn Bob) die folgenden Befehle ausführen (Sie können sie durch ein /tmp
beliebiges Verzeichnis ersetzen , in das beide Benutzer schreiben dürfen, dies ist jedoch /tmp
ideal, da es standardmäßig klebrig ist und einen böswilligen Benutzer daran hindert, diesen Prozess zu untergraben von Bob, der von der Welt gelesen werden kann, funktioniert auch):
[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt
Dadurch wird eine Datei erstellt, die von der Welt geschrieben, aber nicht gelesen werden kann.
Dann hat USER1
(sie sich Alice nennt) laufen (wenn Sie paranoid, Alice die Berechtigungen zunächst überprüfen , um sicherzustellen , dass die Datei von Bob gehört):
[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt
Dies überschreibt den Inhalt von /tmp/test.txt
. Wenn Sie die Integrität der Datei überprüfen möchten, sollte Alice auch einen Hash der Datei generieren. Zum Beispiel:
[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1
Sie können die Datei stattdessen digital signieren oder eine andere Methode zur Gewährleistung ihrer Integrität verwenden.
Und schließlich verschiebt Bob die Datei und übernimmt das Eigentum daran:
[bob@computer ~]$ mv /tmp/test.txt "$HOME"
[bob@computer ~]$ chmod 600 "$HOME/test.txt"
Und Bob kann die Integrität prüfen, wenn er möchte. In diesem Fall sollte er überprüfen, ob nur Alice schreiben kann /tmp/test.txt
.
[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")
Wenn die Datei korrekt kopiert wurde, sollte dies keine Ausgabe anzeigen.