Есть ли способ запретить кому-либо запускать оболочку от имени пользователя root?

Анализ вывода strace:

Я использовал лучший ответ(с моим идентификатором процесса 28223 )...

> sudo strace -p28223 -s9999 -e write
...
write(9, "Info\nI\nCare\nabout", 55) = 55
...

Чтобы определить, что меня волнует write(9. (Ниже используется цифра 9. Вероятно, это дескриптор файла, который может отличаться для вашего процесса. )Затем я написал быстрый Ruby-скрипт для их разбора и отображения.

Вставьте следующее в/usr/bin/parse_strace.rb

#!/usr/bin/ruby

num = ARGV[0]
STDIN.each { |line|
  if (line.match(/write\(#{ num },\s*"(.*?)"/)) then
    puts $1.split('\x').map { |s| s.to_i(16).chr }.join()
  end
}

Не забывайchmod a+x /usr/bin/parse_strace.rb

Я вызываюstrace -xx(выходные данные в шестнадцатеричном формате, поэтому регулярное выражение соответствует правильному ), конвейеру (, включая STDERR ), моему сценарию с 9в качестве первого аргумента.

sudo sh -c 'strace -xx -p28223 -s9999 -e write 2>&1 | parse_strace.rb 9'

И, вуаля, он выводит исходный STDOUT процесса, новые строки, цвет и все!

Attaching to process STDOUT

-2
09.08.2021, 18:59
0 ответов

Теги

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