Imposta l'umask per il processo a ESPR e restituisce il precedente valore.
Se ESPR viene omessa, restituisce solamente l'umask corrente.
Il permesso Unix rwxr-x--- viene rappresentato come tre insiemi di tre bit oppure con
tre cifre ottali: 0750 (il primo 0 indica l'ottale e non è una delle cifre).
Il valore di umask è quel numero che rappresenta i bit dei permessi
disabilitati. I valori dei permessi (o "modalità") che passate a mkdir o
sysopen sono modificati dall'umask dunque anche se dite a sysopen di creare un
file con permessi 0777, se l'umask è 0022 allora il file verrà in
effetti creato con permessi 0755. Se l'umask fosse 0027 (il gruppo non
può scrivere, i restanti non possono leggere, scrivere od eseguire) allora
passare 0666 a sysopen creerebbe un file con modalità 0640
(0666 &~027 è 0640).
Ecco alcuni consigli: fornite una modalità di creazione di 0666 per file
ordinari (in sysopen) ed una di 0777 per le directory (in mkdir) e i file
eseguibili. Questo dà agli utenti la libertà di scelta: se vogliono file
protetti sceglieranno umask di 022, 027 o anche la particolare ed antisociale mask
di 077. I programmi, se non in rari casi, non dovrebbero prendere decisioni sulla
policy che sarebbe meglio fosse lasciata all'utente. L'eccezione a questo fatto si ha
nello scrivere file che devono essere mantenuti privati: file di mail, cookie del
browser web, file .rhosts e così via.
Se umask(2) non è implementata sul vostro sistema e si sta cercando di
restringere l'accesso a se stessi (cioè, (ESPR & 0700) > 0), produce un
errore bloccante a tempo di esecuzione. Se umask(2) non è implementata e non si
sta cercando di restringere l'accesso a se stessi, restituisce undef.
Ricordatevi che un umask è un numero, generalmente fornito in ottale; non
è una stringa di cifre ottali. Si veda anche oct se tutto ciò che
si ha è una stringa.
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per
porre quesiti di tipo tecnico, per rimanere aggiornato su meeting,
incontri, manifestazioni e novità su Perl.it. Iscriviti!