Проблема заключалась в разрешениях для /
(корневой каталог) и подсказке для определения этой строки из вашего Вывод strace
:
access("/", R_OK|X_OK) = -1 EACCES (Permission denied)
Отсутствуют настройки разрешений на чтение группы для /
. Но поскольку у вас все еще было разрешение x
(выполнение), которое позволяет вам перемещаться по каталогу, вы все равно можете получить доступ ко всем файлам в файловой системе, поэтому почти все продолжало работать, пока эти разрешения были в силе. . Единственное, что вам не разрешили, это перечислить содержимое /
. Большинству команд не нужно указывать /
, они либо используют пути относительно текущего каталога, либо абсолютные пути, которые обращаются к определенным известным каталогам вне корня (например, / etc
и / var
).
По соображениям безопасности найти
, даже несмотря на то, что у него есть доступ к полному списку имен файлов, сгенерированных привилегированным пользователем, настаивает на сообщении только результатов, которые вызывающий пользователь сможет найти, просмотрев все файловая система из корня.Так как вы не могли указать /
, что делает сканирование чего-либо прямо из корня невозможным, locate
вообще ничего не сообщит.