В FreeBSD, какой флаг или файл определяет «root» и «toor» для немедленного входа в систему с привилегией su без необходимости «su» после входа в систему?

Я еще не разобрался в проблеме, но могу поделиться некоторыми соображениями.

Как и в случае с Кусаланандой, вызов find | grepявно быстрее в моей системе, что не имеет особого смысла. Сначала я предположил какую-то проблему с буферизацией; что запись в консоль замедляет время до следующего системного вызова для чтения следующего имени файла. Запись в канал происходит очень быстро :около 40 МБ/с даже для 32 -байт записи (в моей довольно медленной системе; 300 МБ/с для блока размером 1 МБ ). Таким образом, я предположил, что findможет быстрее читать из файловой системы при записи в канал (или файл ), так что две операции чтения путей к файлам и записи в консоль могут выполняться параллельно (, что findпоскольку однопоточный процесс не может выполняться сам по себе.

Это findвиноват

Сравнение двух вызовов

:> time find "$HOME"/ -name '*.txt' >/dev/null

real    0m0.965s
user    0m0.532s
sys     0m0.423s

и

:> time find "$HOME"/ >/dev/null

real    0m0.653s
user    0m0.242s
sys     0m0.405s

показывает, что findделает что-то невероятно глупое, (что бы это ни было ). Он просто оказывается совершенно некомпетентным в выполнении -name '*.txt'.

Может зависеть от отношения вход/выход

Можно подумать, что find -nameвыигрывает, если писать очень мало. Но это становится еще более неловким для find. Проигрывает даже если вообще нечего писать против 200K файлов (13M pipe data )дляgrep:

time find /usr -name lwevhewoivhol

findможет быть таким же быстрым, как grep,хотя

Оказывается, тупость findс nameне распространяется на другие тесты. Вместо этого используйте регулярное выражение, и проблема исчезнет:

:> time find "$HOME"/ -regex '\.txt$' >/dev/null     

real    0m0.679s
user    0m0.264s
sys     0m0.410s

Думаю, это можно считать ошибкой. Есть желающие написать отчет об ошибке? Моя версия find (GNU findutils )4.6.0

-1
08.11.2019, 13:01
1 ответ

«Настройка» заключается в том, что rootи toorимеют идентификатор пользователя 0, что определяет, что это суперпользователь.

На это намекает заголовок этого раздела часто задаваемых вопросов FreeBSD: «Что это за учетная запись UID 0 toor? Я был скомпрометирован?»

3
28.01.2020, 05:08

Теги

Похожие вопросы