Provided by: manpages-it-dev_4.15.0-9_all bug

NOME

       umount, umount2 - smonta i filesystem

SINTASSI

       #include <sys/mount.h>

       int umount(const char *target);
       int umount2(const char *target, int flags);

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)
              Perform  a  lazy  unmount: make the mount unavailable for new accesses, immediately
              disconnect the filesystem and all filesystems mounted below it from each other  and
              from  the mount table, and actually perform the unmount when the mount ceases to be
              busy.

       MNT_EXPIRE (a partire da Linux 2.6.8)
              Mark the mount as expired.  If a mount is not currently in  use,  then  an  initial
              call  to umount2()  with this flag fails with the error EAGAIN, but marks the mount
              as expired.  The mount remains expired as long as it isn't accessed by any process.
              A  second  umount2()   call  specifying MNT_EXPIRE unmounts an expired mount.  This
              flag cannot be specified with either MNT_FORCE or 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 per indicare l'errore.

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 target is locked; see mount_namespaces(7).

       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() and shared mounts
       Shared  mounts  cause  any mount activity on a mount, including umount() operations, to be
       forwarded to every shared mount in the peer group and  every  slave  mount  of  that  peer
       group.   This means that umount()  of any peer in a set of shared mounts will cause all of
       its peers to be unmounted and all of their slaves to be unmounted as well.

       This propagation of unmount activity can be particularly surprising on systems where every
       mount is shared by default.  On such systems, recursively bind mounting the root directory
       of the filesystem onto a subdirectory and then later  unmounting  that  subdirectory  with
       MNT_DETACH will cause every mount in the mount namespace to be lazily unmounted.

       To ensure umount()  does not propagate in this fashion, the mount may be remounted using a
       mount(2)  call with a mount_flags argument that includes both MS_REC and MS_PRIVATE  prior
       to umount()  being called.

   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.13 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⟩.