noble (2) umount.2.gz

Provided by: manpages-it-dev_4.21.0-2_all bug

NOME

       umount, umount2 - smonta i filesystem

LIBRARY

       Standard C library (libc, -lc)

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 and MNT_EXPIRE are available since glibc 2.11.

STANDARDS

       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)

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