Кіріспе

Стандартты UNIX құралы

Компьютерлік есептерде umask – жаңадан құрылған файлдарға файлдық рұқсаттарды қалай орнатуды басқаратын масканың параметрлерін анықтайтын команда. Ол файлдық рұқсаттардың тікелей өзгеруіне де әсер етуі мүмкін. Сондай-ақ, бұл масканы орнататын функция, немесе формалды түрде файл режимін құру маскасы деп аталатын масканың өзі болуы мүмкін. Маска – бұл биттердің жиынтығы, олардың әрқайсысы жаңадан құрылған файлдар үшін тиісті рұқсаттың қалай орнатылуын шектейді. Маскадағы биттерді команданы орындау арқылы өзгертуге болады.

Шолу

Unix-ке ұқсас жүйелерде әрбір файлдың кім оқи алатыны, жаза алатыны немесе орындай алатынына қатысты атрибуттары болады. Бағдарлама файл жасағанда, файл рұқсаттары маскамен шектеледі. Егер маскадағы бит "1" болып белгіленген болса, тиісті бастапқы файл рұқсаты өшіріледі. Маскадағы бит "0" болып белгіленген болса, тиісті рұқсатты бағдарлама мен файлдық жүйе анықтайды. Басқаша айтқанда, маска файл жасалғанда рұқсаттарды алып тастайтын соңғы кезеңдегі сүзгі ретінде жұмыс істейді; "1" деп белгіленген әр бит сәйкес рұқсатты алып тастайды. Рұқсаттарды пайдаланушылар мен бағдарламалар кейіннен chmod командасы арқылы өзгерте алады. Әрбір бағдарламаның (техникалық тұрғыдан процесс деп аталады) өзінің маскасы болады және ол функцияны шақыру арқылы өз параметрлерін өзгерте алады. Процесс қабық болған кезде маска командасымен орнатылады. Қабық немесе процесс жаңа процесс іске қосқанда, бағынышты процесс ата-аналық процесстен масканы мұралайды. Жалпы, маска жаңа файлдар жасалғанда ғана файл рұқсаттарына әсер етеді және қолданыстағы файлдардағы рұқсаттар өзгертілгенде әсер етпейді; алайда, команда режим опциялары символдық режимде көрсетілгенде және пайдаланушылар класына сілтеме берілмегенде масканы тексереді. Маска биттер тобы ретінде сақталады. Оны екілік, сегіздік немесе символдық түрде көрсетуге болады. Команда масканы сегіздік (мысалы, ) немесе символдық (мысалы, ) түрінде орнатуға мүмкіндік береді. Команда Unix-ке ұқсас операциялық жүйелерде қолданылады, ал функциясы POSIX.1 спецификациясында анықталған.

Тарих

Маска, команда және функция UNIX-тің бастапқы іске асырылуының құрамына кірмеген. Операциялық жүйе салыстырмалы түрде шағын компьютер ортасында дамыды, онда қауіпсіздік мәселесі маңызды болған жоқ. Кейіннен ол әртүрлі ұйымдардың жүздеген пайдаланушыларына қызмет көрсетуге дейін өсті. Алғашқыда, әзірлеушілер маңызды файлдарды құру режимдерін, әсіресе қауіпсіздік бұзушылықтар болған жағдайларда, шектеулі етті, бірақ бұл жалпылама шешім болған жоқ. Маска мен команда 1978 жыл шамасында операциялық жүйенің жетінші нұсқасында енгізілді, осылайша сайттарға, топтарға және жеке тұлғаларға өздеріне қолайлы әдепкі параметрлерді таңдауға мүмкіндік берді. Маска содан бері Unix сияқты операциялық жүйелердің көпшілігінде, тіпті барлығында да қолданысқа енгізілді.

Маска әсері

Файл құрылғанда маска қолданылады. Егер маскадағы бит "1" болса, онда файлдар кейіннен құрылғанда тиісті файл рұқсаттары әрқашан өшіріледі. Маскадағы "0" биті файлдар кейіннен құрылғанда сұрау процесі мен операциялық жүйе тиісті рұқсатты анықтайды дегенді білдіреді. Басқаша айтқанда, маска файл құрылған кезде рұқсаттарды алып тастайтын соңғы кезеңдегі сүзгі ретінде жұмыс істейді; "1" деп белгіленген әрбір бит сол файл үшін тиісті рұқсатты алып тастайды.

Бетті бүркеудің әдісі

+ Командадағы цифрлар маскада қалай көрінеді және нәтижесінде бағдарламаның файл құру туралы сұранысына әсер етеді, мысалы, командадағы толық рұқсаттар цифрлары. Бинарлық маскада Масканың терістелуі Логикалық ЖӘНЕ "rwx" сұранысымен 0 000 111 rwx 1 001 110 rw 2 010 101 r x 3 011 100 r 4 100 011 wx 5 101 010 w 6 110 001 x 7 111 000 Бағдарламалық тұрғыдан, операциялық жүйе масканы алдымен терістеу (толықтыру) арқылы қолданады, содан кейін сұралған файл режимімен логикалық ЖӘНЕ операциясын жүзеге асырады. Unix-тің функциясын сипаттаған алғашқы нұсқаулықтарының бірінде былай делінген:

Процестер

Әрбір процестің өзіне тән маскасы болады, ол процесс жаңа файл құрғанда қолданылады. Қабықша немесе кез келген басқа процесс жаңа процесс тудырғанда, туған процесс ата-ана процесінен масканы мұраға алады. Егер процесс қабықша болса, маска команда арқылы өзгертіледі. Басқа процестер сияқты, қабықшадан іске қосылған кез келген процесс сол қабықшаның маскасын мұраға алады.

Қосқыш параметрлері

Linux ядросында FAT, hfs, hpfs, ntfs және udf файлдық жүйе драйверлері дискідегі ақпараттың рұқсаттарға шайқастырылуын басқаратын umask орнату опциясын қолдайды. Бұл жоғарыда сипатталған процеске арналған маскадан өзгеше, бірақ рұқсаттар осыған ұқсас жолмен есептелінеді. Осы файлдық жүйе драйверлерінің кейбіреулері файлдар мен каталогтар үшін бөлек маскаларды да қолдайды, мысалы fmask сияқты орнату опцияларын пайдаланады.