umask(2) System Calls Manual umask(2) NOME umask - imposta la maschera di creazione del modo di un file LIBRARY Standard C library (libc, -lc) SINTASSI #include mode_t umask(mode_t mask); DESCRIZIONE umask() imposta la maschera di creazione dei permessi dei file del processo chiamante (umask) a mask & 0777 (cioe vengono usati solo i bit dei permessi dei file di mask), e restituisce il valore precedente della maschera. La umask e 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 e 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 e 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 (because 0666 & ~022 = 0644; i.e. rw-r--r--). VALORE RESTITUITO Questa chiamata di sistema ha sempre successo, e restituisce il valore precedente della maschera. STANDARDS 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). E 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 puo 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 e stata creata da Goffredo Baroncelli , Giulio Daprela e Marco Curreli Questa traduzione e documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilita. Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a . Linux man-pages 6.06 31 ottobre 2023 umask(2)