В чем разница между учетной записью пользователя и службы?

Вы можете использовать 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 все еще работает в приложении, если оно находится в отдельном окне).

16
23.05.2017, 15:40
2 ответа

Учетные записи пользователей используются реальными пользователями, учетные записи служб используются системными службами, такими как веб-серверы, почтовые транспортные агенты, базы данных и т. Д. По соглашению, и только по соглашению, учетные записи служб имеют идентификаторы пользователей в низком диапазоне , например <1000 или около того. За исключением UID 0, служебные учетные записи не имеют особых привилегий. Учетные записи служб могут - и обычно владеют - определенными ресурсами, даже специальными файлами устройства, но у них нет прав суперпользователя.

Учетные записи служб могут быть созданы как учетные записи обычных пользователей (например, с помощью useradd ). Однако учетные записи служб обычно создаются и настраиваются диспетчером пакетов при установке служебного программного обеспечения. Таким образом, даже в качестве администратора вам редко следует напрямую заниматься созданием учетных записей служб.

По уважительной причине: в отличие от учетных записей пользователей, служебные учетные записи часто не имеют «надлежащей» оболочки входа, т.е. у них есть / usr / sbin / nologin в качестве оболочки входа (или, обратно в старые времена, / bin / false ). Более того, учетные записи служб обычно заблокированы, т.е. невозможно войти в систему (для традиционных / etc / passwd и / etc / shadow это может быть достигнуто путем установки хэша пароля на произвольный такие значения, как * или x ). Это необходимо для защиты учетных записей служб от злоупотреблений ( глубокая защита ).

Наличие индивидуальных учетных записей для каждой службы служит двум основным целям: это мера безопасности для уменьшения воздействия в случае инцидента с одной службой ( разделение ), и она упрощает администрирование, поскольку становится проще. чтобы отследить, какие ресурсы какому сервису принадлежат. См. это или это ответы на связанные вопросы для получения более подробной информации.

35
27.01.2020, 19:48

Учетная запись службы может не иметь возможности, например, использовать оболочку. Он используется для выполнения служб (демона) с ограниченной областью действия и привилегиями. Мое мнение таково, что вы можете создать его как обычного пользователя, просто соблюдая осторожность с правами и членством в группах. Однако в большинстве случаев вы этого не делаете, потому что программы автоматически создают их во время установки. Взгляните на / etc / passwd root: x: 0: 0: root: / root: / bin / bash

0 - это UID, он характеризует иерархию учетной записи в пространстве пользователя, root находится выше всех, тогда у вас есть членство в группе : root домашний каталог / root , наконец, оболочка, используемая учетной записью / bin / bash для «входа в систему».

Вы можете использовать / usr / sbin / nologin для учетной записи, для которой вам не нужны права входа.

1
27.01.2020, 19:48

Теги

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