Кіріспе
Unix және Unix-тәрізді операциялық жүйелерде пайдаланушы тіркелгісін анықтайтын мән. Unix-тәрізді операциялық жүйелер пайдаланушыны пайдаланушы идентификаторы деп аталатын, көбінесе пайдаланушы ID немесе UID деп қысқартылатын мән арқылы анықтайды. UID, топ идентификаторымен (GID) және басқа да кіруді бақылау шарттарымен бірге пайдаланушының жүйе ресурстарына қол жеткізу мүмкіндігін анықтау үшін қолданылады. Пароль файлы мәтіндік пайдаланушы есімдерін UID-ге сәйкестендіреді. UID-лер Unix файлдық жүйенің inode-тарында, жұмыс істеп жатқан процестерде, tar архивтерінде және қазір қолданыстан шыққан Network Information Service-те сақталады. POSIX стандартына сәйкес келетін орталарда, shell командасы id қазіргі пайдаланушының UID-ін, сондай-ақ пайдаланушы аты, негізгі пайдаланушы тобы және топ идентификаторы (GID) сияқты қосымша ақпаратты көрсетеді.
Unix like operating systems identify a user by a value called a user identifier, often abbreviated to user ID or UID. The UID, along with the group identifier (GID) and other access control criteria, is used to determine which system resources a user can access. The password file maps textual user names to UIDs. UIDs are stored in the inodes of the Unix file system, running processes, tar archives, and the now obsolete Network Information Service. In POSIX compliant environments, the shell command id gives the current user's UID, as well as more information such as the user name, primary user group and group identifier (GID).
Пайдаланушының нақты идентификаторы
Процестің тиімді UID (euid) көбінесе қол жеткізуді тексеру үшін пайдаланылады. Сондай-ақ, ол осы процесс жасаған файлдардың иесі ретінде де қолданылады. Процестің тиімді GID (egid) де қол жеткізуді бақылауға әсер етеді және қолданылып жатқан ядроның нақты іске асырылу семантикасына және мүмкін қолданылатын монтилеу опцияларына байланысты файлдар жасауға да әсер етуі мүмкін. BSD Unix семантикасына сәйкес, жаңадан құрылған файлға берілген топтық иелік, оны жасаған каталогтың топтық иелігінен міндетті түрде мұраға өтеді. AT&T UNIX System V семантикасына сәйкес (Linux түрлері де қабылдаған), жаңадан құрылған файлға файлды құраған процестің egid-імен көрсетілген топтық иелік беріледі. Көптеген файлдық жүйелер жаңадан құрылған файлдың топтық иелігіне қатысты BSD немесе AT&T семантикасын қолдану жолын іске асырады; S ISGID (s gid) рұқсаты қойылғанда BSD семантикасы нақты каталогтар үшін таңдалады.
Файл жүйесі пайдаланушының идентификаторы
Linux-та файлдық жүйеге кіруді басқару үшін арнайы қолданылатын файлдық жүйе пайдаланушысының идентификаторы (fsuid) бар. Егер басқаша нақты белгіленбесе, ол euid-ге сәйкес келеді. Бұл root пайдаланушысының идентификаторы болуы мүмкін, егер ruid, suid немесе euid root болса ғана. euid өзгерген сайын, бұл өзгеріс fsuid-ге таратылады. fsuid-тің мақсаты – бағдарламаларға (мысалы, NFS серверіне) белгілі бір идентификатордың (uid) файлдық жүйедегі құқықтарымен шектелуге мүмкіндік беру, сол идентификаторға оларға сигналдар жіберуге рұқсат бермей. 2.0 ядросынан бастап fsuid-нің болуы міндетті емес, себебі Linux сигналдарды жіберу үшін SUSv3 ережелерін сақтайды, бірақ fsuid үйлесімділік үшін сақталады.
Сақталған пайдаланушы ID
Сақталған пайдаланушы ID жоғары өкілеттіктермен жұмыс істейтін бағдарламаға уақытша өкілеттіксіз жұмыс істеу қажет болғанда қолданылады; euid өкілеттік мәннен (әдетте 0) өкілеттіксіз мәнге (өкілеттік мәннен өзгеше) өзгерген кезде, өкілеттік мәні suid-те сақталады. Кейіннен бағдарламаның euid-і suid-те сақталған мәнге қайта орнатылып, осылайша жоғары өкілеттіктерді қалпына келтіруге болады; өкілеттіксіз процесс өзінің euid-ін тек үш мәннің біріне ғана орната алады: ruid мәні, suid мәні немесе euid мәні.
Шынайы пайдаланушы ID
Нақты UID (ruid) және нақты GID (rgid) процестің нағыз иесін анықтайды және сигналдарды жіберуге берілетін рұқсаттарға әсер етеді. Супер пайдаланушы құқықтары жоқ процесс, егер жіберушінің ruid немесе euid қабылдаушының ruid немесе suid-імен сәйкес келсе ғана, басқа процесске сигнал жібере алады. Бала процесс ата-анасынан өзінің деректерін мұраға алатындықтан, бала мен ата-ана бір-біріне сигнал жібере алады.
Түрі
POSIX UID-нің бүтін сан түрінде болуын қажет етеді. Unix сияқты көптеген операциялық жүйелер UID-ді қолтаңбасыз бүтін сан ретінде көрсетеді. UID мәндерінің көлемі әртүрлі жүйелерде әртүрлі болады; кейбір UNIX операциялық жүйелері 15 биттік мәндерді қолданады, бұл 32767-ге дейінгі мәндерге мүмкіндік береді, ал Linux (2.4 нұсқасынан бұрын) сияқты басқалары 16 биттік UID-ді қолдайды, бұл 65536 бірегей ID-ге мүмкіндік береді. Көптеген қазіргі заманғы Unix сияқты жүйелер (мысалы, 1990 жылы Solaris 2.0 және 2001 жылы Linux 2.4) 32 биттік UID-ге көшті, бұл 4,294,967,296 (232) бірегей ID-ге мүмкіндік береді.