Как это упорядочивает результаты?

Если ваша система имеет руткит, вы должны:

Соберите любую информацию о запущенных процессах на вашем компьютере. Сделайте копию ОЗУ и вашего жесткого диска. переформатировать / переделать жесткий диск (ы). Установить новую систему / восстановить резервную копию.

Первые два момента полезны, если вы хотите исследовать в этой проблеме. Возможно, также полезно не прикасаться к системе до тех пор, пока ваше расследование не закончится.

В случае руткита у кого-то другого, вероятно, был полный доступ к вашему компьютеру. Поэтому важно полностью удалить старую систему. Thatswhy вы должны переформатировать свой диск. Если вам повезло и у вас есть последняя резервная копия, вам нужно восстановить ее, и все готово. Если нет, вам необходимо переустановить систему. Это единственный способ безопасного удаления руткита и создания чистой системы.

3
задан 8 January 2018 в 12:29

2 ответа

Я не совсем уверен, спрашиваете ли вы о whereis или which, поэтому я просто буду обращаться к обоим.

whereis

whereis находит двоичные, исходные и ручные файлы для указанных имен команд. (...) [It] пытается найти нужную программу в стандартных местах Linux и в местах, определенных $PATH и $MANPATH. (...) Самый простой способ узнать, какие пути используются, - добавить опцию листинга -l. Источник: man whereis

Запустите whereis -l, чтобы получить список путей, которые использует программа. По умолчанию он ищет двоичные, исходные и ручные файлы, вы можете изменить это поведение с помощью параметров -b, -s и -m, например

$ whereis -m apt
apt: /usr/share/man/man8/apt.8.gz
$ whereis -b apt
apt: /usr/bin/apt /usr/lib/apt /etc/apt

В отличие от which (см. Ниже ) whereis не проверяет, является ли файл исполняемым при поиске двоичных файлов, поэтому touch /bin/apt изменяет его вывод.

which

whereis находит двоичные, исходные и ручные файлы для указанных имен команд. (...) [It] пытается найти нужную программу в стандартных местах Linux и в местах, определенных $PATH и $MANPATH. (...) Самый простой способ узнать, какие пути используются, - добавить опцию листинга -l. Источник: man whereis

Что which делает

which возвращает имена путей (...) путем поиска PATH для исполняемых файлов, соответствующих именам аргументов , Источник: man which

IFS=':'; find $PATH -mindepth 1 -maxdepth 1 -type f -executable -name "SEARCH"

Я считаю, что which делает то же самое, что и эта команда find:

$ which apt
/usr/bin/apt
$ IFS=':'; find $PATH -mindepth 1 -maxdepth 1 -type f -executable -name "apt"
/usr/bin/apt

Почему ваша попытка не удалась

Он ищет все каталоги, присутствующие в PATH для исполняемых файлов с именем SEARCH, например для apt:

$ touch /bin/apt
$ chmod +x /bin/apt
$ which -a apt
/usr/bin/apt
/bin/apt
$ IFS=':'; find $PATH -mindepth 1 -maxdepth 1 -type f -executable -name "apt"
/usr/bin/apt
/bin/apt
5
ответ дан 22 May 2018 в 15:41
  • 1
    Альтернативой find ${PATH//:/ } ..., совместимой с POSIX, которая также работает с именами путей, которые содержат пробелы, является IFS=':'; find $PATH .... Подробнее см. unix.stackexchange.com/q/26784/47852 . – David Foerster 8 January 2018 в 19:55
  • 2
    было поздно, и моя концентрация не была такой высокой. моя первоначальная попытка состояла в том, чтобы «перезаписать». команда apt. Поэтому я подумал, что если я создам shellscript в каком-то месте, которое находится внутри переменной пути, я бы увидел, что which выпустил мой shellscript, но почему-то я запутался. Вы отлично ответили на мой вопрос, спасибо – InsOp 8 January 2018 в 21:02
  • 3
    Пожалуйста! IFS=':' find $PATH ... не совпадает с IFS=':'; find $PATH .... Обратите внимание на размещение точки с запятой! Последний устанавливает IFS как переменную оболочки , чтобы влиять на расширение переменной в последующих командах, тогда как первая устанавливает IFS в качестве переменной среды [ ! d2] для вновь созданного процесса find после были расширены все остальные переменные в той же команде. Конечно, вы можете использовать разрыв строки вместо точки с запятой. – David Foerster 9 January 2018 в 00:20

Я не совсем уверен, спрашиваете ли вы о whereis или which, поэтому я просто буду обращаться к обоим.

whereis

whereis находит двоичные, исходные и ручные файлы для указанных имен команд. (...) [It] пытается найти нужную программу в стандартных местах Linux и в местах, определенных $PATH и $MANPATH. (...) Самый простой способ узнать, какие пути используются, - добавить опцию листинга -l. Источник: man whereis

Запустите whereis -l, чтобы получить список путей, которые использует программа. По умолчанию он ищет двоичные, исходные и ручные файлы, вы можете изменить это поведение с помощью параметров -b, -s и -m, например

$ whereis -m apt apt: /usr/share/man/man8/apt.8.gz $ whereis -b apt apt: /usr/bin/apt /usr/lib/apt /etc/apt

В отличие от which (см. Ниже ) whereis не проверяет, является ли файл исполняемым при поиске двоичных файлов, поэтому touch /bin/apt изменяет его вывод.

which

whereis находит двоичные, исходные и ручные файлы для указанных имен команд. (...) [It] пытается найти нужную программу в стандартных местах Linux и в местах, определенных $PATH и $MANPATH. (...) Самый простой способ узнать, какие пути используются, - добавить опцию листинга -l. Источник: man whereis

Что which делает

which возвращает имена путей (...) путем поиска PATH для исполняемых файлов, соответствующих именам аргументов , Источник: man which

IFS=':'; find $PATH -mindepth 1 -maxdepth 1 -type f -executable -name "SEARCH"

Я считаю, что which делает то же самое, что и эта команда find:

$ which apt /usr/bin/apt $ IFS=':'; find $PATH -mindepth 1 -maxdepth 1 -type f -executable -name "apt" /usr/bin/apt

Почему ваша попытка не удалась

Он ищет все каталоги, присутствующие в PATH для исполняемых файлов с именем SEARCH, например для apt:

$ touch /bin/apt $ chmod +x /bin/apt $ which -a apt /usr/bin/apt /bin/apt $ IFS=':'; find $PATH -mindepth 1 -maxdepth 1 -type f -executable -name "apt" /usr/bin/apt /bin/apt
5
ответ дан 17 July 2018 в 23:38

Другие вопросы по тегам:

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