Вы можете использовать strace -p
в одном окне для отслеживания команды, запущенной в другом окне. Опция -p
принимает один или несколько идентификаторов процессов, поэтому вы можете, например, попробовать
strace -p "$(pidof pry)"
если у вас есть хотя бы один процесс, который pidof
распознает как pry
. Возможно, вам придется поэкспериментировать с pidof
(если я хочу отследить команду pudb3
, мне нужно использовать python3
, а не pudb3
), и использование pidof
может быть не лучшим подходом, если с ним связана какая-то двусмысленность (у вас может быть несколько команд, которые совпадают, но вы хотите strace
только одну из них). Может быть проще найти нужный процесс с помощью ps
и предоставить опцию напрямую.
Этот подход вряд ли будет хорошо работать с короткоживущими процессами или в ситуации, когда важно видеть вывод с ранних этапов жизни процесса, но для интерактивного приложения, время запуска которого не особенно интересно, он может быть применим.
Одно из отличий использования strace -p
от strace
без -p
заключается в том, как обрабатываются прерывания. Процесс, запущенный strace
, будет иметь прерывания типа Ctrl-C, переданные ему (и сообщенные strace
), но Ctrl-C в strace -p
отсоединит его и позволит продолжить процесс без трассировки (и Ctrl-C все еще работает в приложении, если оно находится в отдельном окне).
Учетные записи пользователей используются реальными пользователями, учетные записи служб используются системными службами, такими как веб-серверы, почтовые транспортные агенты, базы данных и т. Д. По соглашению, и только по соглашению, учетные записи служб имеют идентификаторы пользователей в низком диапазоне , например <1000 или около того. За исключением UID 0, служебные учетные записи не имеют особых привилегий. Учетные записи служб могут - и обычно владеют - определенными ресурсами, даже специальными файлами устройства, но у них нет прав суперпользователя.
Учетные записи служб могут быть созданы как учетные записи обычных пользователей (например, с помощью useradd
). Однако учетные записи служб обычно создаются и настраиваются диспетчером пакетов при установке служебного программного обеспечения. Таким образом, даже в качестве администратора вам редко следует напрямую заниматься созданием учетных записей служб.
По уважительной причине: в отличие от учетных записей пользователей, служебные учетные записи часто не имеют «надлежащей» оболочки входа, т.е. у них есть / usr / sbin / nologin
в качестве оболочки входа (или, обратно в старые времена, / bin / false
). Более того, учетные записи служб обычно заблокированы, т.е. невозможно войти в систему (для традиционных / etc / passwd
и / etc / shadow
это может быть достигнуто путем установки хэша пароля на произвольный такие значения, как *
или x
). Это необходимо для защиты учетных записей служб от злоупотреблений ( глубокая защита ).
Наличие индивидуальных учетных записей для каждой службы служит двум основным целям: это мера безопасности для уменьшения воздействия в случае инцидента с одной службой ( разделение ), и она упрощает администрирование, поскольку становится проще. чтобы отследить, какие ресурсы какому сервису принадлежат. См. это или это ответы на связанные вопросы для получения более подробной информации.
Учетная запись службы может не иметь возможности, например, использовать оболочку. Он используется для выполнения служб (демона) с ограниченной областью действия и привилегиями. Мое мнение таково, что вы можете создать его как обычного пользователя, просто соблюдая осторожность с правами и членством в группах. Однако в большинстве случаев вы этого не делаете, потому что программы автоматически создают их во время установки.
Взгляните на / etc / passwd
root: x: 0: 0: root: / root: / bin / bash
0 - это UID, он характеризует иерархию учетной записи в пространстве пользователя, root находится выше всех, тогда у вас есть членство в группе : root
домашний каталог / root
, наконец, оболочка, используемая учетной записью / bin / bash
для «входа в систему».
Вы можете использовать / usr / sbin / nologin
для учетной записи, для которой вам не нужны права входа.