Ogni altra risposta qui richiede l'accesso come root, consente a qualsiasi utente sullo stesso computer di copiare il file o richiede la condivisione della password. Ecco un metodo che non:
Chiedi USER2
(chiamiamolo Bob) di eseguire i seguenti comandi (puoi sostituirlo /tmp
con qualsiasi directory in cui entrambi gli utenti dispongono delle autorizzazioni per scrivere, ma /tmp
è l'ideale perché per impostazione predefinita è appiccicoso, il che impedisce a un utente malintenzionato di sovvertire questo processo. di Bob leggibile in tutto il mondo funziona anche):
[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt
Questo crea un file che è scrivibile in tutto il mondo, ma non leggibile.
Quindi USER1
esegui (chiamiamola Alice) (se sei paranoico, Alice può prima controllare le autorizzazioni per assicurarsi che il file sia di proprietà di Bob):
[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt
Questo sovrascrive il contenuto di /tmp/test.txt
. Se vuoi verificare l'integrità del file, Alice dovrebbe anche generare un hash del file. Per esempio:
[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1
Puoi invece firmare digitalmente il file o qualsiasi altro metodo per garantirne l'integrità.
E infine Bob sposta il file e ne prende la proprietà:
[bob@computer ~]$ mv /tmp/test.txt "$HOME"
[bob@computer ~]$ chmod 600 "$HOME/test.txt"
E Bob può controllare l'integrità se gli piace. In tal caso, dovrebbe verificare per assicurarsi che solo Alice possa scrivere /tmp/test.txt
.
[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")
Se il file è stato copiato correttamente, questo non dovrebbe visualizzare alcun output.