Почему системный вызов chroot недоступен для пользователя без полномочий root?

8

Я читал описание о setuid в Википедии http://en.wikipedia.org/wiki/Setuid

Я не смог понять, как chroot связан с setuid, как упомянуто в следующем абзаце из википедии.

Наличие исполняемых файлов setuid объясняет, почему системный вызов chroot недоступен для пользователей без полномочий root в Unix. Смотрите ограничения chroot для более подробной информации.

Мистер кодер
источник

Ответы:

11

Если непривилегированный пользователь мог выполнить программу setuid в chrootтюрьме, он мог бы тщательно построить эту тюрьму, чтобы обманным путем заставить программу повышать привилегии. Например, я могу создать chrootтюрьму, в которой мне разрешено использовать sudo, потому что я могу контролировать каждый файл конфигурации внутри этой тюрьмы.

Дэвид Шварц
источник
Я все еще полностью думаю, что выражение на странице википедии может быть переписано, чтобы фактически выразить это.
Florin Asăvoaie
Раздел об ограничениях в статье о chroot более подробно описан в отрывке.
Дэвид Шварц
8
@FlorinAsavoaie: Хорошая вещь в Википедии состоит в том, что если вы думаете, «это может быть написано так и так», вы имеете право сделать это :)
phresnel