Самый простой способ - включить аудит системных вызовов
Подробности см. По следующей ссылке ,
Кто-нибудь знает простой способ отслеживания появления корневого процесса | Ошибка сервера
Если вы отслеживаете все процессы, просто удалите часть -F uid = 0
Журналы записываются в /var/log/audit/audit.log
Проблема в том, что между одинарными кавычками $replacement не раскрывается.
В этом случае sed -i -e "s/contact/$replacement/g" path/file;
должен работать.
Или это:
sed -i -e 's/nothing/'$replacement'/g' path/file;
Пример:
$ echo "There's nothing there." > file
$ cat file
There's nothing there.
$ replacement=something
$ sed -i -e 's/nothing/'$replacement'/g' file;
$ cat file
There's something there.
В ответ на комментарий Кусалананды ниже :Если замена, являющаяся путем, содержит косые черты, вам нужно будет предварительно -обработать ее, прежде чем использовать ее с sed:
replacement=$(sed 's@\/@\\\/@g' <<< "$replacement")
здесь документы — хорошая идея для изучения, когда вы цитируете ад:
ssh "$login" <<'END_REMOTE'
replacement=$(find. -name file)
sed -i -e 's/contact/$replacement/g' path/file
END_REMOTE
Открывающее ключевое слово для heredoc заключено в кавычки, что означает, что весь heredoc заключен в одинарные кавычки. Легче читать, не так ли?