GnomixLand




      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)


©  GnomixLand
http://www.gnomixland.com/