Provided by: manpages-it-dev_4.23.1-1_all bug

NOME

       umask - imposta la maschera di creazione del modo di un file

LIBRERIA

       Libreria C standard (libc, -lc)

SINTASSI

       #include <sys/stat.h>

       mode_t umask(mode_t mask);

DESCRIZIONE

       umask()  imposta  la  maschera  di  creazione dei permessi dei file del processo chiamante
       (umask) a mask & 0777 (cioè vengono usati solo i bit dei permessi dei  file  di  mask),  e
       restituisce il valore precedente della maschera.

       La  umask  è  usata  da open(2), mkdir(2), e altre chiamate di sistema che creano file per
       modificare i permessi dati ai nuovi file o directory. Nello  specifico  i  permessi  nella
       umask sono disattivati dall'argomento mode in open(2) e mkdir(2).

       In  alternativa,  se  la  directory genitrice ha un ACL predefnito (vedi acl(5)), la umask
       viene ignorata, la ACL predefinita viene ereditata, i bit dei permessi  vengono  impostati
       sulla  base  della ACL ereditata, e i bit dei permessi assenti nell'argomento mode vengono
       disattivati. Per esempio, la seguente ACL predefinita è equivalente a una umask di 022:

           u::rwx,g::r-x,o::r-x

       Combinando  gli  effetti  di  questa  ACL  predefinita  con  un  argomento  mode  di  0666
       (rw-rw-rw-), i permessi sul file risultanti dovrebbero essere 0644 (rw-r--r--).

       Le  costanti  che  possono  essere  utilizzate  per  specificare la mask sono descritte in
       inode(7).

       Il tipico valore predefinito per il processo umask è S_IWGRP | S_IWOTH (ottale  022).  Nel
       caso comune in cui l'argomento mode di open(2) a specificato come:

           S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH

       (ottale 0666) quando si crea un nuovo file, i permessi sul file risultante saranno:

           S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

       (perché 0666 & ~022 = 0644; i.e. rw-r--r--).

VALORE RESTITUITO

       Questa  chiamata  di  sistema ha sempre successo, e restituisce il valore precedente della
       maschera.

CONFORME A

       POSIX.1-2008.

STORIA

       POSIX.1-2001, SVr4, 4.3BSD.

NOTE

       Un processo figlio creato attraverso fork(2) eredita la umask del genitore. La umask viene
       lasciata inalterata da execve(2).

       É  impossibile  chiamare  umask()  per  ottenere un "umask" del processo senza allo stesso
       tempo modificarlo. Una seconda chiamata a umask() sarebbe poi necessaria per  ripristinare
       la  "umask"  originale. Il fatto che queste due fasi non siano indipendenti fra loro rende
       possibili situazioni di conflitto nel caso di programmi multithread.

       A  partire  da  Linux  4.7,  l'umask  può  essere  vista  tramite  il   campo   Umask   di
       /proc/pid/status.  La  visualizzazione  di questo campo in /proc/self/status consente a un
       processo di ottenere la propria "umask" senza allo stesso tempo modificarla.

       L'impostazione di umask influenza anche  i  permessi  assegnati  agli  oggetti  IPC  POSIX
       (mq_open(3),  sem_open(3),  shm_open(3)),  FIFO  (mkfifo(3))  e sui socket di dominio Unix
       (unix(7)) creati dai processi. L'umask non influenza i permessi assegnati agli oggetti IPC
       System V creati dal processo (usando msgget(2), semget(2), shmget(2)).

VEDERE ANCHE

       chmod(2), mkdir(2), open(2), stat(2), acl(5)

TRADUZIONE

       La  traduzione  italiana di questa pagina di manuale è stata creata da Goffredo Baroncelli
       <kreijack@usa.net>,     Giulio     Daprelà      <giulio@pluto.it>,      Marco      Curreli
       <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>

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