Безопасно ли использовать отключенного пользователя для запуска процесса в Linux?

Ядра в системах с одним сокетом -, таких как ваша, имеют равный доступ к памяти через общий контроллер памяти. Они также совместно используют свой внешний кеш(4 МБ в вашем случае). Каждое ядро ​​имеет свои собственные кэши уровня 1 и 2(64 КиБ и 256 КиБ на ядро ​​соответственно ).

В системах, совместимых с Intel x86 -, вы столкнетесь с NUMA(не -унифицированным доступом к памяти)в более крупных системах с несколькими сокетами (технически более высокие -конечные серверные ЦП с десятью ядра или более могут также имитировать NUMA, но это не меняет их реальную архитектуру памяти ). В таких системах каждый сокет ЦП управляет набором банков памяти, и доступ к памяти занимает больше времени, если код, выполняющий доступ, выполняется на ЦП, который не управляет рассматриваемой памятью. Однако в большинстве систем типа x86 -вся память по-прежнему используется совместно — каждый ЦП может получить доступ к каждому байту ОЗУ.

Подавляющее, подавляющее большинство систем на базе x86 -являются системами с общей памятью, даже если они являются системами NUMA; распределенная память весьма необычна, и на x86 вы, скорее всего, столкнетесь с ней только в суперкомпьютерах -.

Чтобы выяснить все это, вам потребуется изучить архитектуру вашей системы, например, прочитав подробные обзоры, такие как AnandTech или даже таблицы данных Intel. Кажется, это считается настолько «общеизвестным», что о нем обычно не упоминают...

1
20.06.2021, 11:46
1 ответ

Да, и это довольно стандартная практика. Например, многие демоны запускаются со своим собственным выделенным именем пользователя/идентификатором пользователя (и, часто, с выделенным gid )-. У них нет пароля (или отключенный пароль ), и они не могут войти в систему, но процессы и задания cron могут запускаться с их UID.

Многие из них также имеют /bin/falseили /usr/sbin/nologinили что-то подобное в качестве оболочки.

напр. в моей системе Debian,пользователи tftpи unboundиспользуются для запуска tftpdи DNS-преобразователя unbound. У одного из них /bin/falseв качестве оболочки, у другого/usr/sbin/nologin-в практическом плане нет никакой разницы.

$ getent passwd tftp unbound
tftp:x:182:187:tftp daemon,,,:/srv/tftp:/bin/false
unbound:x:188:210::/var/lib/unbound:/usr/sbin/nologin
3
28.07.2021, 11:23

Теги

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