 |
Menu principale |
 |
 |
Cartoline virtuali |
 |
Cartolina n° 87

Sono presenti 1307 cartoline virtuali. Entra ora
 |
Giochi online |
 |
 |
News Reader |
 |
|
RFC 775 Directory oriented FTP commands Page 1
COMANDI FTP ORIENTATI ALLE CARTELLE
David Mankins (dm@bbn-unix)
Dan Franklin (dan@bbn-unix)
A. D. Owen (ADOwen@bbnd)
Traduzione a cura di ComiSAT
Brescia, Set 2002
(http://www.comisat.it)
Come parte del progetto per il mantenimento di siti remoti per ARPA
(Remote Site Maintenance – RSM), BBN ha installato e cura il software di
diversi DEC PDP-11(1) che girano su sistemi operativi Unix. Dal momento
che Unix ha una struttura di directory ad albero, nella quale le cartelle
sono facilmente manipolabili come fossero files, abbiano trovato
conveniente espandere i servers FTP su queste macchine in modo da
includere comandi che abbiano a che fare con la creazione di cartelle.
Dato che su ARPAnet vi sono altri hosts che hanno una struttura di
cartelle ad albero, compresi Tops-20 e Multics(2), abbiamo cercato di
rendere questi comandi piu’ generali possibile.
Al nostro server abbiamo aggiunto quattro comandi:
XMKD child
Crea una directory chiamata “child”.
XRMD child
Rimuove la directory chiamata “child”.
XPWD
Stampa l’attuale cartella di lavoro.
XCUP
Passa alla cartella superiore (parent directory)
(3)(4)
L’argomento “child” dovrebbe essere creato (rimosso) come una
sottocartella della directory di lavoro corrente, a meno che la stringa
“child” non contenga sufficienti informazioni per specificare diversamente
al server, per esempio, “child” e’ un percorso assoluto (in Multics e
Unix), oppure qualcosa come “” sotto Tops-20.
RFC 775 Directory oriented FTP commands Page 2
CODICI DI RISPOSTA
Il comando XCUP e’ un caso speciale di XCWD (5), e viene incluso per
semplificare l’implementazione di programmi per il trasferimento di alberi
di cartelle tra sistemi operativi che hanno sintassi differenti per la
nomenclatura delle parent directory. Pertanto raccomandiamo
che i codici di risposta per XCUP siano identici a quelli per XCWD.
Allo stesso modo, raccomandiamo che i codici di risposta per XRMD siano
identici ai codici di risposta per il suo file analogo, DELE.
I codici di risposta per XMKD, tuttavia, sono leggermente piu’ complicati.
Una cartella creata di recente sara’ probabilmente oggetto di un futuro
comando XCWD. Sfortunatamente, l’argomento di XMKD puo’ non sempre essere
un argomento adatto per XCWD. Questo e’ il caso, ad esempio, quando viene
creata una sottocartella Tops-20 dando solamente il nome della stessa.
Vale a dire, con un server FTP Tops-20, la sequenza di comandi
XMKD NUOVACARTELLA
XCWD NUOVACARTELLA
non andra’ a buon fine. La nuova directory puo’ essere riferita solamente
dal suo nome “assoluto”; per esempio, se il comando XMKD sopra viene
fornito mentre si e’ connessi alla cartella , alla nuova
sottocartella ci si puo’ riferire solamente col nome
.
Sotto Unix e Multics, tuttavia, l’argomento fornito a XMKD puo’ non
essere appropriato. Se questo e’ un percorso “relativo” (ovvero un
percorso interpretato relativo alla cartella corrente), l’utente avrebbe
la necessita’ di stare nella stessa cartella corrente per raggiungere la
sottocartella. A seconda dell’applicazione, questo puo’ rivelarsi un
inconveniente. In ogni caso non e’ molto robusto.
Per risolvere questi problemi, sino al riuscito completamento di un
comando XMKD, il server dovrebbe ritornare una linea del form:
257""
Ovvero, il server dira’ all’utente quale stringa usare per riferirsi alla
cartella creata. Il nome della cartella puo’ contenere qualsiasi
RFC 775 Directory oriented FTP commands Page 3
carattere; le virgolette all’interno dovrebbero essere fatte uscire dalle
virgolette (convenzione di “virgolettatura”).
Per esempio, un utente si connette alla cartella /usr/dm, e crea una
sottocartella chiamata ‘child’:
XCWD /usr/dm
200 directory changed to /usr/dm
XMKD child
257 "/usr/dm/child" directory created
Esempio con virgolette incluse:
XMKD foo"bar
257 "/usr/dm/foo""bar" directory created
XCWD /usr/dm/foo"bar
200 directory changed to /usr/dm/foo"bar
Crediamo che la precedente esistenza di una sottocartella con lo stesso
nome dovrebbe essere interpretata come un errore, e lo abbiamo
implementato sul nostro server cosi’ da dare una risposta d’errore di
“accesso negato” in questo caso.
CWD /usr/dm
200 directory changed to /usr/dm
XMKD child
521-"/usr/dm/child" directory already exists;
521 taking no action.
Raccomandiamo che le risposte di insuccesso per XMKD siano analoghe per il
suo cugino file di crezione, STOR. Raccomandiamo inoltre che un “accesso
negato” sia tornato se il nome di un file uguale al nome di una
sottocartella sara’ in conflitto con la creazione della sottocartella
(questo e’ problema su Unix, ma non dovrebbe esserlo su Tops-20).
Essenzialmente, poiche’ il comando XPWD ritorna lo stesso tipo di
informazione di un comando XMKD riuscito, abbiamo implementato che pure
il comando XPWD riuscito usi il codice di risposta 257.
Riportiamo ora un sommario dei codici di risposta proposti per i comandi
sperimentali. I codici fuori parentesi sono conformi con la RFC 691; ad
esempio, per il vecchio protocollo come aggiornato dai suggerimenti di
quella RFC. I programmi server ed utente su BBN-Unix implementano
attualmente tali codici. La risposta 257 e’ l’unico codice nuovo. I codici
di risposta riportati tra parentesi sono per il “nuovo” protocollo ftp, la
cui maggior parte e’ stata recentemente documentata nella RFC 765.
RFC 775 Directory oriented FTP commands Page 4
Il codice inventato per il Protocollo della RFC 765 e’ il 251.
Comando spiegazione del comando
codice risp. commento (traduzione)
XMKD crea una directory
257 (251) "pathname" created (“nome percorso” creato)
521 (450) "pathname" already exists (“nome percorso” gia’ esistente)
506 (502) action not implemented (azione non implementata)
521 (450) access denied (accesso negato)
550 (501) bad pathname syntax or ambiguous (sintassi del nome
percorso non corretta o ambigua)
425 (451) random file system error (error casuale nel file system)
XCUP passa al livello superiore
della cartella corrente
200 (200) working directory changed (cartella di lavoro cambiata)
506 (502) action not implemented (azione non implementata)
507 (551) no superior directory (non vi sono cartelle superiori)
521 (450) access denied (accesso negato)
425 (451) random file system error (errore casuale nel file system)
XRMD rimuove la directory
224 (250) deleted ok (rimozione ok)
506 (502) action not implemented (azione non implementata)
521 (450) access denied (accesso negato)
550 (501) bad pathname syntax or ambiguous (sintassi del nome
percorso non corretta o ambigua)
425 (451) random file system error (errore casuale nel file system)
XPWD stampa la directory di lavoro
attuale
257 (251) "pathname" (“nome percorso”)
425 (451) random file system error (errore casuale nel file system)
506 (502) action not implemented (azione non implementata)
RFC 775 Directory oriented FTP commands Page 5
SUBTLETIES
Siccome questi comandi sono per lo piu’ utili nel trasferimento di
sottoalberi da una macchina ad un altra, dobbiamo insistere sul fatto che
l’argomento di XMKD dev’essere interpretato come una sottocartella della
cartella di lavoro corrente, a meno che non contenga informazioni
sufficienti per dire diversamente all’host di destinazione. Un esempio
ipotetico del suo utilizzo nel mondo del Tops-20:
XCWD
200 Working directory changed
XMKD overrainbow
257 "" directory created
XCWD overrainbow
431 No such directory
XCWD
200 Working directory changed
XCWD
200 Working directory changed to
XMKD
257 "" directory created
XCWD
Si noti che il primo esempio risulta in una sottocartella della cartella
connessa. In contrasto, l’argomento nel secondo esempio contiene
informazioni sufficienti sotto Tops-20 per dire che la cartella
e’ una cartella di primo livello (top-level). Si noti anche
che nel primo esempio l’utente “ha violato” il protocollo tentando di
accedere alla cartella appena creata con un nome diverso da quello
tornato dal Tops-20. I problemi che potrebbero essere risultati in questo
caso sono li’ stati una cartella ; questa e’ un’ambiguita’
inerente a qualche implementazione Tops-20. Simili considerazioni si
applicano al comando XRMD. Il punto e’ questo: a meno che non voglia
violare la convenzione di un host per la denotazione relativa contro
percorsi assoluti, l’host dovrebbe trattare gli operandi dei comandi XMKD
e XRMD come sottocartelle. La risposta 257 al comando XMKD deve sempre
contenere il percorso assoluto della cartella creata.
RIFERIMENTI
File Transfer Protocol (RFC 765), Postel, J., June 1980
RFC 775 Directory oriented FTP commands Page 6
CWD Command of FTP (RFC 697), Lieb, J., NIC 32963, 14 July 1975
One More Try on the FTP (RFC 691), Harvey, B., NIC 32700, 28 May
1975
Revised FTP Reply Codes (RFC 640), Postel, J., N. Neigus, K.
Pogran, NIC 30843, 5 June 1974
File Transfer Protocol (RFC 542), Neigus, N., NIC 17759, 12 July
1977
NOTE DEL TRADUTTORE
(1) PDP-11 - Minicomputer prodotto dalla Digital Equipment Corp. (DEC) e rilasciato la
prima volta nel 1970. E’ stato largamente diffuso nelle universita’ americane. Ne sono
state fatte diverse versioni.
(2) Sistemi operativi usati in passato. Il Multics (acronimo di Multiplexed Information
and Computing Service) in particolare, e’ uno dei primi sistemi operativi multiutente:
parliamo degli anni sessanta. Fu usato per una ventina d’anni ma non si divulgo’ mai
in larga scala; fu tuttavia la musa ispiratrice per lo sviluppo di diversi altri
sistemi operativi.
(3) Una cartella che CONTIENE sottocartelle si dice ‘parent’, cartella superiore;
una cartella CONTENUTA in un'altra si dice ‘child’, cartella inferiore (termini
traducibili dall’inglese in ‘genitore’ e ‘bambino’). Superiore ed inferiore sono
intesi nella gerarchia della struttura ad albero.
(4) I comandi iniziano tutti con la X per distinguersi da altri comandi esistenti,
e per contrassegnare la nuova categoria di comandi; le lettere restanti sono la
contrazione delle seguenti espressioni inglesi:
XMKD -> MaKe Directory (crea cartella)
XRMD -> ReMove Directory (rimuovi cartella)
XPWD -> Print Working Directory (stampa cartella di lavoro)
XCUP -> Change Up(?) Parent (vai alla cartella superiore)
(5) XCWD -> Change Working Directory (cambia la cartella di lavoro
corrente)
|
|
|
|