jammy (2) umount.2.gz

Provided by: manpages-it-dev_4.13-4_all bug

NOME

       umount, umount2 - smonta i filesystem

SINTASSI

       #include <sys/mount.h>

       int umount(const char *target);

       int umount2(const char *target, int opzioni);

DESCRIZIONE

       umount() e umount2() rimuovono il filesystem (più alto) montato su target.

       Sono necessari privilegi appropriati (Linux: capacità CAP_SYS_ADMIN per smontare i filesystem.

       A  partire  da Linux 2.1.116 è stata aggiunta la chiamata di sistema umount2() che, come umount(), smonta
       un target, ma permette opzioni aggiuntive che controllano il comportamento dell'operazione:

       MNT_FORCE (a partire da Linux 2.1.116)
              Chiede al filesystem di interrompere le richieste pendenti prima di tentare lo smontaggio. Ciò può
              consentire  di  completare  lo  smontaggio senza rimanere in attesa di un server inaccessibile, ma
              potrebbe causare perdita di dati. Se, dopo le  richieste  d'interruzione,  alcuni  processi  hanno
              ancora  riferimenti  attivi  al  filesystem,  lo  smontaggio  fallirà. Alla versione 4.12 di Linux
              MNT_FORCE è supportato solo sui seguenti filesystem: 9p (da Linux 2.6.16), ceph (da Linux 2.6.34),
              cifs (da Linux 2.6.12), fuse (da Linux 2.6.16), lustre (da Linux 3.11) e NFS (da Linux 2.1.116).

       MNT_DETACH (a partire da Linux 2.4.11)
              Esegue  uno  smontaggio  lento:  rende  il  punto  di  mount  non disponibile per i nuovi accessi,
              disconnette immediatamente il filesystem e tutti i filesystem montati sotto di esso da ogni  altro
              e  dalla  tabella di mount, ed esegue effettivamente lo smontaggio quando il punto di mount smette
              di essere occupato.

       MNT_EXPIRE (a partire da Linux 2.6.8)
              Marca il punto di mount come scaduto. Se un punto di mount non è attualmente in  uso,  allora  una
              chiamata  iniziale  a umount2() con questa opzione fallisce con l'errore EAGAIN, ma marca il punto
              di mount come scaduto. Il punto di mount rimane  scaduto  fino  a  quando  non  vi  accede  nessun
              processo.  Una  seconda  chiamata  umount2()  che  specifica  MNT_EXPIRE  smonta un punto di mount
              scaduto. Questa opzione non può essere specificato con MNT_FORCE o con MNT_DETACH.

       UMOUNT_NOFOLLOW (a partire da Linux 2.6.34)
              Non elimina il riferimento a target se è un collegamento simbolico.  Questa  opzione  permette  di
              evitare  problemi  di  sicurezza  in  programmi  set-user-ID-root  che  consentono  a utenti senza
              privilegi di smontare i filesystem.

VALORE RESTITUITO

       In caso di successo restituisce zero. In caso di errore  restituisce  -1,  e  errno  verrà  impostato  di
       conseguenza.

ERRORI

       I  valori  di  errore  indicati  di  seguito  sono causati da errori indipendenti dal tipo di filesystem.
       Ciascun tipo di filesystem può avere i propri errori speciali e il suo comportamento speciale. Vedere  il
       codice sorgente del kernel per dettagli.

       EAGAIN Una  chiamata  a  umount2()  che  specifica  MNT_EXPIRE  ha marcato con successo un filesystem non
              occupato come scaduto.

       EBUSY  target non può essere smontato in quanto occupato.

       EFAULT target punta fuori dallo spazio di indirizzamento dell'utente.

       EINVAL target non è un punto di mount.

       EINVAL umount2() è stato chiamato con MNT_EXPIRE e con uno fra MNT_DETACH o MNT_FORCE.

       EINVAL (a partire da Linux 2.6.34)
              umount2() è stato cchiamato con un valore di opzione non valido in flags.

       ENAMETOOLONG
              Un nome di percorso è più lungo di MAXPATHLEN.

       ENOENT Un nome di percorso era vuoto o aveva un componente inesistente.

       ENOMEM Il kernel non può allocare una pagina libera in cui copiare nomi di file o dati.

       EPERM  Il chiamante non ha i privilegi necessari.

VERSIONI

       MNT_DETACH e MNT_EXPIRE sono disponibili in glibc sin dalla versione 2.11.

CONFORME A

       Queste funzioni sono specifiche di Linux e non devono  essere  usate  in  programmi  pensati  per  essere
       portabili.

NOTE

   umount() e punti di mount "shared mount"
       Punti  di  mount condivisi fanno sì che qualsiasi attività di montaggio su un punto di mount, comprese le
       operazioni di umount(), siano propagate a ogni punto di mount condiviso nel "peer group" e a ogni  "slave
       mount"  di  quel "peer group". Questo significa che l'azione di umount() di qualsiasi "peer" in una serie
       di "shared mount" provocherà lo smontaggio di tutti suoi "peer" e anche di tutti i loro "slave".

       Questa propagazione dell'attivita di smontaggio può riservare sorprese specialmente nei sistemi dove ogni
       punto  di  mount è condiviso (shared) in modo predefinito. Su tali sistemi, montare ricorsivamente con un
       montaggio di tipo "bind" la directory radice del filesystem in una sottodirectory e poi  smontare  quella
       sottodirectory  con  MNT_DETACH  provoca  lo smontaggio "lazy" di ogni montaggio nello spazio dei nomi di
       mount.

       Per essere sicuri che umount() non si propaghi in questo modo, il punto di  mount  può  essere  rimontato
       usando una chiamata mount(2) con un argomento mount_flags che includa sia MS_REC sia MS_PRIVATE prima che
       umount() venga chiamato.

   Dettagli storici
       La funzione originale umount() era chiamata come umount(device) e restituiva ENOTBLK  quando  non  veniva
       chiamata  da  un  dispositivo  a blocchi. In Linux 0.98p4 fu aggiunta una chiamata umount(dir), per poter
       supportare dispositivi anonimi. In Linux 2.3.99-pre7 la chiamata  umount(device)  fu  rimossa,  lasciando
       solo umount(dir) (poiché ora i dispositivi possono essere montati in più di un posto, così specificare il
       dispositivo non è sufficiente).

VEDERE ANCHE

       mount(2), mount_namespaces(7), path_resolution(7), mount(8), umount(8)

COLOPHON

       Questa pagina fa parte del rilascio 5.10 del progetto Linux man-pages. Una descrizione del  progetto,  le
       istruzioni  per  la  segnalazione  degli  errori,  e  l'ultima  versione  di  questa pagina si trovano su
       https://www.kernel.org/doc/man-pages/.

TRADUZIONE

       La traduzione italiana di questa pagina di manuale è stata creata  da  Elisabetta  Galli  <lab@kkk.it>  e
       Marco Curreli <marcocurreli@tiscali.it>

       Questa   traduzione   è  documentazione  libera;  leggere  la  GNU  General  Public  License  Versione  3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  o  successiva  per  le  condizioni  di  copyright.   Non  ci
       assumiamo alcuna responsabilità.

       Per  segnalare  errori  nella  traduzione  di  questa  pagina  di  manuale  inviare un messaggio a pluto-
       ildp@lists.pluto.it ⟨⟩.