Кіріспе

Файл жүйелеріндегі рұқсат етілген әрекеттер

Көптеген файл жүйелері файлдар мен каталогтардың атрибуттарын қамтиды, олар пайдаланушылардың файл жүйесінің мазмұнын оқуға, өзгертуге, шолуға және орындауға мүмкіндігін бақылайды. Кейбір жағдайларда, пайдаланушының рұқсат деңгейіне байланысты мәзір опциялары немесе функциялары көрсетілуі немесе жасырылуы мүмкін; мұндай пайдаланушы интерфейсі рұқсаттармен басқарылатын интерфейс деп аталады. Екі кең таралған рұқсат түрі бар: POSIX файл жүйесінің рұқсаттары және кіруді бақылау тізімдері (ACL), олар одан да нақты бақылау мүмкіндігіне ие.

POSIX рұқсаттары

Unix сияқты файлдық жүйелердегі рұқсаттар POSIX.1 2017 стандартында белгіленеді, онда иесі, топ және басқалар деп аталатын үш деңгей немесе класс қолданылады. Файл жасалған кезде оның рұқсаттары оны жасаған процестің umask арқылы шектеледі.

Сыныптар

Файлдар мен каталогтар пайдаланушыға тиесілі. Иесі файлдың пайдаланушы класын анықтайды және оған арнайы рұқсаттар беріледі. Файлдар мен каталогтарға топ тағайындалады, ол файлдың топтық класын анықтайды. Файл тобының мүшелеріне бөлек рұқсаттар беріледі. Иесі файл тобының мүшесі болуы мүмкін. Егер пайдаланушы файлдың иесі де, топ мүшесі де болмаса, ол файлдың «басқалар» класына жатады. «Басқалар» класына да арнайы рұқсаттар беріледі. Рұқсаттардың қолданылуы пайдаланушының жататын алғашқы класына байланысты: біріншіден пайдаланушы, содан кейін топ, және соңғыда «басқалар». Мысалы, егер пайдаланушы файлдың иесі болса, ол топқа немесе «басқаларға» берілген рұқсаттарға қарамастан, пайдаланушы класына берілген рұқсаттарды алады.

Setuid, setgid және жабысқақ биттермен рұқсат беруді өзгерту

Unix-ке ұқсас жүйелер әдетте үш қосымша режимді қолданады. Бұл атрибуттар, бірақ рұқсаттар немесе режимдер деп аталады. Бұл арнайы режимдер файлға немесе каталогқа жалпылай қолданылады, класс бойынша емес, бірақ символдық белгіде (төменде қараңыз) setuid биті пайдаланушы үшін үштікке, setgid биті топ үшін үштікке, ал жабысқақ биті басқалар үшін үштікке орнатылады. Пайдаланушы идентификаторын орнату, setuid немесе SUID режимі. Setuid файлы орындалғанда, пайда болатын процесс иесіне берілген тиімді пайдаланушы ID-ін қабылдайды. Бұл пайдаланушыларды уақытша root (немесе басқа пайдаланушы) ретінде қарауға мүмкіндік береді. Топ идентификаторын орнату, setgid немесе SGID рұқсаты. Setgid файлы орындалғанда, пайда болатын процесс топ класына берілген топ ID-ін қабылдайды. Setgid каталогқа қолданылғанда, осы каталогта құрылған жаңа файлдар мен каталогтар өз тобын осы каталогтан мұра етеді. (Жаңа файлдар мен каталогтар тобын орнатқанда әдепкі бойынша нақты пайдаланушының негізгі тобы қолданылады, бірақ BSD-ден алынған жүйелерде setgid биті барлық каталогтарда әрқашан орнатылғандай әрекет етеді (Setuid қараңыз).) Жабысқақ режим (текст режимі деп те аталады). Орындалатын файлдардағы жабысқақ биттің классикалық мінез-құлқы ядроны процесс имиджін тоқтатудан кейін жадыда сақтауға итермелейді; алайда, жабысқақ биттің мұндай қолданылуы қазір тек Unix-ке ұқсас операциялық жүйелердің аз бөлігіне ғана (HP-UX және UnixWare) шектелген. Каталогтағы жабысқақ рұқсаттары каталогқа жазу рұқсаты болса да, пайдаланушыларға өздерінен басқа пайдаланушыларға тиесілі файлдарды қайта атауға, жылжытуға немесе жоюға рұқсат бермейді. Бұл шектеуден тек каталогтың иесі мен супер пайдаланушы ғана босатылады. Бұл қосымша режимдер setuid биті, setgid биті және жабысқақ бит деп те аталады, өйткені олардың әрқайсысы тек бір бит алады.

Пайдаланушылардың жеке тобы

Кейбір жүйелер пайдаланушылар мен топтардың дәстүрлі POSIX моделінен ауытылып, әр пайдаланушы үшін жаңа топ – "пайдаланушының жеке тобы" құрады. Әрбір пайдаланушы өзінің жеке тобының жалғыз мүшесі деп есептесек, бұл схема 002 umask-ін қолдануға мүмкіндік береді, соның салдарынан басқа пайдаланушыларға қалыпты каталогтарда жаңадан құрылған файлдарға жазу мүмкіндігі болмайды, себебі мұндай файлдар файлды құраған пайдаланушының жеке тобына тағайындалады. Алайда, файлдарды бөлісу қажет болған жағдайда, әкімші қажетті пайдаланушыларды қамтитын топты құра алады, содан соң жаңа топқа жазуға рұқсат етілген каталогты құрып, ең бастысы, осы каталогты setgid деп белгілейді. Каталогты setgid деп белгілеу арқасында, оның ішінде құрылған файлдар каталогтың өзімен бірдей топқа жатады, ал 002 umask (пайдаланушының жеке тобын қолдану арқылы қосылады) осы топтың басқа мүшелеріне сол файлдарға жазуға мүмкіндік береді.