Понимание SUID
На этом этапе вы познакомитесь с концепцией разрешения SUID и его последствиями.
Обычно, когда программа запускается на Linux, она выполняется с правами текущего пользователя. Однако некоторые программы, такие как cp
, требуют повышенных привилегий для выполнения определенных операций, например, копирования файлов в ограниченные директории. Чтобы разрешить обычным пользователям запускать такие программы с повышенными привилегиями, можно установить разрешение SUID на исполняемый файл.
SUID расшифровывается как "Set user ID upon execution" (Установить идентификатор пользователя при выполнении). Когда у файла установлено разрешение SUID, он выполняется с правами его владельца, независимо от того, какой пользователь его запускает. Например, команда cp
принадлежит пользователю root и имеет установленный бит SUID, что позволяет любому пользователю запускать ее с правами root.
Чтобы проверить разрешение SUID для команды cp
и сохранить вывод в файл, выполните следующую команду:
ls -l /usr/bin/cp > /home/labex/project/suid_cp.txt
Просмотрите содержимое файла suid_cp.txt
с помощью следующей команды:
cat /home/labex/project/suid_cp.txt
Ожидаемый вывод:
-rwsr-xr-x 1 root root 141832 Feb 8 2024 /usr/bin/cp
Вы должны увидеть букву s
в разрядах разрешений, что указывает на наличие разрешения SUID.
Хотя SUID может быть полезным для разрешения обычным пользователям запускать определенные привилегированные команды, он также может быть эксплуатирован, если бинарный файл с SUID предоставляет функциональность для выполнения системных команд или модификации файлов.