В Unix переменная IFS часто использовалась для нарушения целостности системы.
Как это было исправлено?
Единственный ответ, который я нашел, находится на странице Википедии http://en.wikipedia.org/wiki/Internal_field_separator, которая гласит:
«Это было исправлено тем, что оболочки не наследовали переменную IFS».
Я могу проверить это в моей системе Debian 6:
$ export IFS=/
$ printf "%s" "$IFS" | od -bc
0000000 057
/
0000001
$ bash
bash-$ printf "%s" "$IFS" | od -bc
0000000 040 011 012 # default values
\t \n
0000003
bash-$ exit
exit
$
$ printf "%s" "$IFS" | od -bc
0000000 057
/
0000001
$
Этого достаточно, чтобы избежать повышения привилегий? Как я могу использовать IFS для разрыва абсолютных путей внутри системных вызовов ()?