История изменений
Исправление
gv,
(текущая версия)
:
Пара мыслей на эту тему.
Что делает setuid (без буквы e):
- Если текущий effective uid равен нулю, то устанавливает effective uid, real uid и saved uid.
- Если не равен, устанавливает только effective uid, но только если новый uid равен либо real uid, либо saved uid.
Что делает seteuid (с буквой e):
- Если текущий effective uid равен нулю, то устанавливает effective uid.
- Если не равен, то устанавливает effective uid, но только если новый uid равен либо real uid, либо saved uid.
То есть, если изначально effective uid равен нулю, то набор проверок, которые делают seteuid() и setuid() при первом вызове и при втором немного различаются.
Не совсем понятно, зачем такой тест для seteuid; наверное это такой стресс-тест, который писался с оглядкой на возможные ляпы
в реализации seteuid, о которых знал автор.
PS. Напомнило: Ineffective Sorts
Исходная версия
gv,
:
Пара мыслей на эту тему.
Что делает setuid (без буквы e):
- Если текущий effective uid равен нулю, то устанавливает effective uid, real uid и saved uid.
- Если не равен, устанавливает только effective uid, но только если новый uid равен либо real uid, либо saved uid.
Что делает seteuid (с буквой e):
- Если текущий effective uid равен нулю, то устанавливает effective uid.
- Если не равен, то устанавливает effective uid, но только если новый uid равен либо real uid, либо saved uid.
То есть, если изначально effective uid равен нулю, то набор проверок, которые делают seteuid() и setuid() при первом вызове и при втором немного различаются.
Не совсем понятно, зачем такая проверка для seteuid; наверное это такой стресс-тест, который писался с оглядкой на возможные ляпы
в реализации seteuid, о которых знал автор.
PS. Напомнило: Ineffective Sorts