Setiap jawaban lain di sini memerlukan akses root, memungkinkan setiap pengguna pada mesin yang sama untuk menyalin file, atau memerlukan berbagi kata sandi. Berikut adalah metode yang tidak:
Mintalah USER2
(sebut saja dia Bob) menjalankan perintah berikut (Anda dapat mengganti /tmp
dengan direktori mana pun yang memiliki izin untuk ditulis oleh kedua pengguna, tetapi /tmp
sangat ideal karena secara default bersifat lengket, yang mencegah pengguna jahat untuk membatalkan proses ini. Direktori yang dimiliki oleh Bob yang bisa dibaca dunia juga berfungsi):
[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt
Ini membuat file yang bisa ditulis dunia, tetapi tidak bisa dibaca.
Kemudian USER1
jalankan (sebut saja dia Alice) jalankan (jika Anda paranoid, Alice dapat memeriksa izin terlebih dahulu untuk memastikan file tersebut dimiliki oleh Bob):
[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt
Ini menimpa isi /tmp/test.txt
. Jika Anda ingin memeriksa integritas file, Alice juga harus menghasilkan hash file. Contohnya:
[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1
Anda dapat menandatangani file secara digital, atau metode lain untuk menjamin integritasnya.
Dan akhirnya Bob memindahkan file dan mengambilnya:
[bob@computer ~]$ mv /tmp/test.txt "$HOME"
[bob@computer ~]$ chmod 600 "$HOME/test.txt"
Dan Bob dapat memeriksa integritas jika dia suka. Jika demikian, ia harus memeriksa untuk memastikan hanya Alice yang dapat menulis /tmp/test.txt
.
[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")
Jika file itu disalin dengan benar, ini seharusnya tidak menampilkan output.