umask
Nustato umask'ą procesui į EXPR ir gražina prieš tai buvusią reikšmę. Jei EXPR praleistas, paprasčiausiai gražina dabartinį umask'ą.
Unix leidimas rwxr-x---
parodomas kaip trijų bitų trigubas nustatymas arba aštuntainiai skaičiai: 0750
(pirmasis 0 parodo aštuntainę sistemą ir nėra vienas skaitmenų). umask
reikšmė yra toks skaičius parodantis neveiksnius leidimų bitus. Leidimai (arba "režimas") reikšmės, kurias perduodate mkdir
ar sysopen
yra paveikiamas vartotojo umask, taigi net jei liepsite sysopen
sukurti failą su leidimais 0777
, jei jūsų umask yra 0022
tada failas bus sukurtas su leidimais 0755
. Jei
umask
buvo
0027
(group negali rašyti; kiti gali skaityti, rašyti ir vykdyti), tai perduodant sysopen
0666
sukurs failą su leidimais 0640
(0666 &~ 027
yra 0640
).
Štai patarimas: uždėkite sukūrimo režime 0666
įprastiems failams (sysopen
) ir vieną iš 0777
direktorijoms (
mkdir
) ir vykdomiems failams. Tai duoda vartotojams pasirinkimo laisvę: jei jie nori apsaugotų failų, jie gali paisirinkti perduoti umaskus 022
, 027
, ar netgi ypač nedraugišką 077
. Programos turėtų retai, jei išvis kada nors palikti elgsenos sprendimus vartotojui. Išimtis tam yra failų, kurie turėtų būti nevieši rašymas: pašto failai, naršyklės sausainiukai, .rhosts
failai ir t.t.
Jei umask(2) nerealizuotas sistemoje, o jūs mėginate apriboti priėjimą pačiam sau (t.y., (EXPR & 0700) > 0), duoda lemtingą klaidą paleidimo metu. Jei umask(2) nėra realizuotas ir nemėginate savęs apriboti, gražina undef
.
Prisiminkite, kad umask yra skaičius, dažniausiai perduodamas aštuntainėje sistemoje; tai nėra
aštuntainių skaitmenų stringas. Žr. taip pat oct, jei viskas, ką turite yra stringas..