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