Questo è il comando safecat che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici postazioni di lavoro online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
safecat: scrivi in modo sicuro i dati in un file
SINOSSI
gatto sicuro tempdir destinazione
INTRODUZIONE
gatto sicuro è un programma che implementa il . del professor Daniel Bernstein è posta algoritmo per
copia stdin in modo sicuro in un file in una directory specificata. Insieme a gatto sicuro, l'utente è offerto
due assicurazioni. Primo, se gatto sicuro restituisce uno stato di uscita riuscito, quindi tutti i dati sono
garantito per essere salvato nella directory di destinazione. In secondo luogo, se esiste un file nel
directory di destinazione, inserita lì da gatto sicuro, allora il file è garantito per essere
completare.
Quando si salvano i dati con gatto sicuro, l'utente specifica una directory di destinazione, ma non un file
nome. Il nome del file è selezionato da gatto sicuro per garantire che non si verifichino collisioni di nomi di file,
anche se tanti gatto sicuro processi e altri programmi che implementano è posta algoritmo sono
scrivendo nella directory contemporaneamente. Se si desiderano nomi di file particolari, allora
l'utente dovrebbe rinominare il file dopo gatto sicuro completa. In generale, durante lo spooling dei dati con
gatto sicuro, un singolo processo separato dovrebbe gestire la denominazione, la raccolta e l'eliminazione di questi
File. Esempi di tale processo sono demoni, cron job e lettori di posta.
AFFIDABILITÀ PROBLEMI
Una macchina potrebbe bloccarsi durante la scrittura dei dati su disco. Per molti programmi, incluso
molti agenti di recapito della posta, ciò significa che i dati verranno troncati silenziosamente. Usando
del professor Bernstein è posta algoritmo, ogni file è garantito completo o inesistente.
Molte persone o programmi possono scrivere dati in una comune directory "spool". Sistemi come mh-
mail memorizzare i file utilizzando nomi numerici in una directory. La scrittura incauta sui file può
provocare una collisione, in cui una scrittura ha esito positivo e l'altra sembra avere successo ma
non riesce. Le strategie comuni per risolvere questo problema comportano la creazione di file di blocco o altro
meccanismi di sincronizzazione, ma tali meccanismi sono soggetti a guasti. Chiunque abbia
cancellato $HOME/.netscape/lock per avviare netscape può attestarlo. Il è posta
l'algoritmo è immune a questo problema perché non utilizza alcun blocco.
IL MAILDIR ALGORITMO
Come descritto nella è posta(5), gatto sicuro applica il è posta algoritmo scrivendo i dati in sei
passi. In primo luogo, è stat() le due directory tempdir e destinazione, ed esce a meno che entrambi
le directory esistono e sono scrivibili. Secondo, è stat() il nome direzione temp/tempo.pid.host,
where tempo è il numero di secondi dall'inizio del 1970 GMT, pid è il programma?
ID processo e host è il nome dell'host. Terzo, se statistica() restituito qualcosa di diverso da
ENOENT, il programma dorme per due secondi, si aggiorna tempo, e prova il statistica() di nuovo, a
numero limitato di volte. In quarto luogo, il programma crea direzione temp/tempo.pid.host. Quinto, il
Programma NFS-scrive il messaggio al file. Sesto, il programma collegamento()è il file per
destinazione/tempo.pid.host. In quell'istante i dati sono stati scritti con successo.
Inoltre, gatto sicuro avvia un timer di 24 ore prima di creare direzione temp/tempo.pid.host e
interrompe la scrittura se il timer scade. In caso di errore, timeout o completamento normale, gatto sicuro
tentare di scollega() direzione temp/tempo.pid.host.
EXIT STATUS
Uno stato di uscita pari a 0 (successo) implica che tutti i dati sono stati salvati in modo sicuro su disco. UN
lo stato di uscita diverso da zero dovrebbe essere considerato come un fallimento, sebbene ci sia un esterno
possibilità che gatto sicuro ha scritto i dati con successo, ma non la pensava così.
Nota ancora che se un file appare nella directory di destinazione, allora è garantito che
essere completo.
If gatto sicuro si completa con successo, quindi stamperà il nome del file appena creato
(senza il suo percorso) allo standard output.
SUGGERITO APPLICAZIONI
Usi entusiasmanti per gatto sicuro abbondano, ovviamente, ma una parola può essere per suggerire cosa
loro sono.
Se esegui Linux e usi qmail invece di sendmail, dovresti considerare di convertire il tuo
posta in arrivo a è posta per la sua superiore affidabilità. Se la tua home directory è montata su NFS,
qmail ti costringe a usare è posta.
Se scrivi applicazioni CGI per raccogliere dati sul World Wide Web, potresti trovare
gatto sicuro utile. Le applicazioni Web soffrono di due problemi principali. La loro performance
soffre di ogni arresto o collo di bottiglia in Internet; non possono permettersi di presentare
propri problemi di prestazione. Inoltre, le applicazioni web non dovrebbero MAI lasciare il
server e database in uno stato incoerente. Questo è probabile, tuttavia, se gli script CGI
frob direttamente alcuni database, in particolare se il database è sovraccarico o lento. Che cosa
succede quando gli utenti si annoiano e fanno clic su "Stop" o "Indietro"? Forse l'attività del database
completa. Forse lo script CGI viene ucciso, lasciando il DB in uno stato incoerente.
Considera la seguente strategia. Fai in modo che il tuo script CGI scarichi la sua richiesta in uno spool
directory usando gatto sicuro. Restituire immediatamente una ricevuta al browser. Ora il browser
ha una garanzia completa che la loro presentazione venga ricevuta e la prestazione percepita
della tua applicazione web è ottimale.
Nel frattempo, un demone spooler nota la nuova richiesta, la cattura e aggiorna il
Banca dati. I browser possono essere informati che la loro richiesta sarà soddisfatta in X minuti.
Il risultato sono prestazioni ottimali nonostante un Internet capriccioso. Inoltre, gli utenti possono
essere offerto quasi il 100% di affidabilità.
ESEMPI
Per convincere sendmail a usare è posta per la consegna del messaggio, aggiungi la seguente riga al tuo
file .forward:
|SICUREZZA HOME/Maildir/tmp HOME/Maildir/nuovo || exit 75 #NOME UTENTE
where SICURO è il percorso completo del gatto sicuro programma, HOME è il percorso completo per
la tua home directory e USERNAME è il tuo nome di accesso. È probabile che apportare questa modifica paghi
spento; molti campus e aziende montano le home directory degli utenti con NFS. Usando è posta a
la consegna nella cartella della posta in arrivo aiuta a garantire che la posta non vada persa a causa di alcuni NFS
errore. Naturalmente, se sei un amministratore di sistema, dovresti considerare di passare a
qmail.
Per eseguire un programma e catturare il suo output in modo sicuro in una directory, puoi usare una shell
script come il seguente.
#!/ bin / bash
MYPROGRAM=cat # Il programma che vuoi eseguire
TEMPDIR=/ Tmp # Il nome di una directory temporanea
DESTDIR=$HOME/lavoro/dati # La directory per memorizzare le informazioni
try() { $* 2>/dev/null || eco NO 1>&2 }
set `( try $MYPROGRAM | try safecat $TEMPDIR $DESTDIR ) 2>&1`
prova "$?" = "0" || uscita -1
prova "$1" = "NO" && { rm -f $DESTDIR/$2; uscita -1; }
Questo script illustra le insidie della scrittura di programmi sicuri con la shell. Il
script presuppone che il tuo programma possa generare dell'output, ma poi non riuscire a completarsi.
Non c'è modo per gatto sicuro per sapere se il tuo programma è stato completato con successo o meno,
a causa della semantica della shell. Di conseguenza, safecat potrebbe creare un file nel
directory dei dati che è "completa" ma non utile. Lo script della shell elimina il file in
questo caso.
Più in generale, il modo più sicuro di usare gatto sicuro proviene dall'interno di un programma C che invoca
gatto sicuro con forchetta() e esegui(). Il processo genitore può semplicemente uccisione() , il gatto sicuro
processo se si verificano problemi e, facoltativamente, può riprovare. Se andare a questo
i problemi dipendono da quanto sei serio nel proteggere i tuoi dati. In entrambi i casi, gatto sicuro
non sarà l'anello debole nel tuo flusso di dati.
Usa safecat online utilizzando i servizi onworks.net