Это не дефект безопасности, в котором прокладывает себе путь функция, она, как предполагается, работает. (Учитывая, что эта функция в значительной степени возникла случайно, это не удивительно.) Может случиться так, что Ваши ожидания не вполне соответствуют тому, что действительно делает функция.
Когда у пользователя есть выполнить разрешение на каталоге, но не разрешение чтения, пользователь может получить доступ к любой записи в каталоге, если он знает его имя. Этот доступ включает все метаданные о записи, включая ее имя, ее тип, его размер, его даты, и т.д. Таким образом, пользователь может отличить несуществующую запись от существующей записи, к содержанию которой он не может получать доступ.
Названия записей действуют как пароли. Если Вы знаете пароль, можно достигнуть записи. На записи могут быть дополнительные ограничения доступа, но это - несвязанный вопрос. Можно всегда повреждать аутентификацию по паролю грубой силой путем попытки всех возможных паролей.
Если Вы не хотите показывать что-нибудь о записях в - x каталог, используйте неотгадываемые имена (т.е. случайные имена, которые достаточно длинны).
Да, Вы могли рассматривать его как дефект безопасности в том, как файл Unix и полномочия каталога определены и реализованы. Это - компромисс; это позволяет Вам, например, предоставить пользовательский доступ к каталогу глубоко в ограниченной иерархии, если они знают путь.
Обходное решение должно вложить ограниченные каталоги так, чтобы Вы предположили несколько компонентов, прежде чем можно будет получить доступ к действительно уязвимой информации. Но конечно, это действительно не добавляет безопасность, просто мрак.
root
пользователь может обойти любое из этих ограничений так или иначе, таким образом, это, тем не менее, не особенно безопасно. Если Вы хотите разумную безопасность, многопользовательская система, вероятно, не, где необходимо быть.