Изменения

Перейти к навигации Перейти к поиску
207 байт добавлено ,  16 лет назад
м
Строка 9: Строка 9:  
</code>
 
</code>
   −
При внимательном рассмотрении выяснилось, что код вовсе не проверяет, является ли пользователь всемогущим [[root]]. Если обнаруживается нужное сочетание флагов, то вызвавший его процесс '''получает''' максимальные привилегии и моментально превращает wait4() в «черный ход». Другими словами, человек, знающий нужное сочетание флагов и место, где их следует установить, получает полный контроль над любой [[Linux]]-машиной. И вся эта гигантская разница — между тем, как код выглядит и что он в действительности делает, — заключена всего лишь в одном знаке на языке [[Си]]. Если бы этот нюанс обнаружили при обычных обстоятельствах, то наверняка сочли бы за элементарную ошибку программиста.
+
При внимательном рассмотрении выяснилось, что код вовсе не проверяет, является ли пользователь всемогущим [[root]]. Если обнаруживается нужное сочетание флагов, то вызвавший его процесс '''получает''' максимальные привилегии и моментально превращает wait4() в «черный ход». Другими словами, человек, знающий нужное сочетание флагов и место, где их следует установить, получает полный контроль над любой [[Linux]]-машиной. И вся эта гигантская разница — между тем, как код выглядит и что он в действительности делает, — заключена всего лишь в одном знаке на языке [[Си]] (двойной знак равенства, как в первом случае, означает ''проверку'' условия; одинарный — ''оператор присваивания''). Если бы этот нюанс обнаружили при обычных обстоятельствах, то наверняка сочли бы за элементарную ошибку программиста.
    
== История обнаружения ==
 
== История обнаружения ==
Анонимный участник

Реклама:

Навигация