Suid

Suid

setuid и setgid (сокращение от "set user ID upon execution" (установка ID пользователя во время выполнения) и "set group ID upon execution" (установка ID группы во время выполнения), соответственно) являются Unix флагами прав доступа, которые разрешают пользователям запускать исполняемые файлы соответственно с правами владельца или группы исполняемого файла.

Содержание

setuid на файлах

Когда атрибут setuid установлен файлу, обычный пользователь, запускающий этот файл на исполнение, получает повышение прав до пользователя-владельца файла (обычно root) в рамках запущенного процесса. После получения повышенных прав приложение может выполнять задачи, выполнение которых обычному пользователю недоступно. Пользователю будет запрещено системой изменение нового процесса. Из-за возможности состояния гонки многие операционные системы игнорируют установленный атрибут к shell-скриптам.

Хотя атрибут setuid очень удобен во многих случаях, его неправильное использование может представлять угрозу безопасности. когда атрибут присваивается исполняемому файлу, который не тщательно спроектирован. Пользователи могут использовать уязвимости в недоработанных программах, чтобы получить повышенные привилегии или непреднамеренно запустить программу троянского коня.

Установленный setgid атрибут даёт повышение прав группы.

Атрибуты setuid и setgid обычно устанавливаются командой chmod установкой первой пары битов в 4 (setuid) или 2 (setgid). Команда "chmod 6711" соответственно установит обе пары битов сразу в (4+2=6). Также можно использовать символьные аргументы для установки этих битов командой "chmod ug+s".

setuid и setgid на папках

Биты setuid и setgid, установленные для папок, имеют совсем другой смысл.

Бит setgid для папки (chmod g+s) заставляет только новые папки и файлы, созданные в ней, наследовать ID группы этой папки вместо ID группы пользователя создавшего файл. Новые подпапки также наследуют бит setgid. Это позволяет создать общее рабочее пространство для группы без неудобств членам группы явно менять их текущую группу для создания новых файлов и папок. Наследование устанавливается только для новых файлов и папок. Уже существующим файлам и папкам этот бит нужно устанавливать вручную, например:

[root@foo]# find /path/to/directory -type d -exec chmod g+s {} \;

Бит setuid, установленный для директорий игнорируется (в большинстве дистрибутивов Linux/Unix).

Общая информация

В Unix-подобных системах приложение запускается с правами пользователя, вызвавшего указанное приложение. Это обеспечивает дополнительную безопасность, так как процесс с правами пользователя не сможет получить доступ на запись к важным системным файлам, например /etc/passwd, который принадлежит суперпользователю root. Если на исполняемый файл установлен бит suid, то при выполнении эта программа автоматически меняет «эффективный userID» на идентификатор того пользователя, который является владельцем этого файла. То есть, независимо от того — кто запускает эту программу, она при выполнении имеет права хозяина этого файла.

Пример

[bob@foo]$ cat /etc/passwd
alice:x:1007:1007::/home/alice:/bin/bash
bob:x:1008:1008::/home/bob:/bin/bash
 
[bob@foo]$ cat printid.c
 
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
 
int main(void)
{
    printf("Real UID\t= %d\n", getuid());
    printf("Effective UID\t= %d\n", geteuid());
    printf("Real GID\t= %d\n", getgid());
    printf("Effective GID\t= %d\n", getegid());
 
    return EXIT_SUCCESS;
}
 
[bob@foo]$ gcc -Wall printid.c -o printid
[bob@foo]$ chmod ug+s printid
[bob@foo]$ su alice 
Password: 
[alice@foo]$ ls -l
-rwsr-sr-x 1 bob bob 6944 2007-11-06 10:22 printid
[alice@foo]$ ./printid 
Real UID        = 1007
Effective UID   = 1008
Real GID        = 1007
Effective GID   = 1008
[alice@foo]$

История

Бит suid был изобретен Деннисом Ритчи и запатентован в США компанией AT&T в 1979 году. Позже, патент 4135240 «Protection of data file contents» был выложен в свободный доступ.

Безопасность

Программа с установленным битом suid является «потенциально опасной». В «нормальном» случае она не позволит обычному пользователю сделать то, что выходит за пределы его полномочий (например, программа passwd разрешит пользователю изменить только собственный пароль). Но, даже незначительная ошибка в такой программе может привести к тому, что злоумышленник сможет заставит её выполнить ещё какие-нибудь действия, не предусмотренные автором программы.

Бит suid на неисполняемых файлах

Обычно, установка бита suid на неисполняемых файлах бессмысленна. Также бит не несет никакого смысла, если он установлен на директорию.

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Suid" в других словарях:

  • Suid — may refer to:* setuid, a Unix privilege elevation mechanism * Suidae, a biological family to which pigs and their relatives belong …   Wikipedia

  • SUID — Setuid (Set User ID, manchmal auch suid) ist ein erweitertes Unix Dateirecht für Dateien oder Verzeichnisse des Unix Betriebssystems. Ausführbare Programme, bei denen dieses Bit gesetzt ist, werden mit den Rechten des Benutzers ausgeführt dem die …   Deutsch Wikipedia

  • Suid — Setuid Setuid (parfois suid) est un terme UNIX, abréviation de « Set User ID ». Il s agit d une propriété qui est appliquée aux fichiers et répertoires d un système d exploitation UNIX. Grâce à cette propriété, un processus exécutant un …   Wikipédia en Français

  • suid — ▪ hoofed mammal  any member of the family Suidae, hoofed mammals, order Artiodactyla, including the wild and domestic pigs. Suids are stout animals with small eyes and coarse, sometimes sparse, hair. All have muzzles ending in a rounded cartilage …   Universalium

  • Suid-Afrikaanse Lugdiens — South African Airways AITA SA OACI SAA Indicatif d appel Springbok Repères historiques …   Wikipédia en Français

  • Suid-Afrikaanse Lugdiens — South African Airways …   Deutsch Wikipedia

  • SUID — sudden unexplained infant death * * * su·id (sooґid) porcine …   Medical dictionary

  • SUID — Set User Identity …   Acronyms

  • súid — sú|id Mot Pla Nom masculí …   Diccionari Català-Català

  • SUID — Set User Identity …   Acronyms von A bis Z


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»