ldd показывает только соединение зависимостей, то есть, это не показывает то, что может потребоваться, чтобы на самом деле запускать программу успешно, что требуется запустить программу вообще.
Необходимо сделать разрешение зависимости через диспетчер пакетов.
Команда adduser по умолчанию также создает каталог /home/user для системных пользователей, чего нельзя сделать с помощью команды useradd. useradd добавляет домашние каталоги только для обычных пользователей, но не для системных.
Системный администратор может делать с useradd все, что можно сделать с adduser. Здесь было указано, что вы не можете создать каталог /home/user для системных пользователей с помощью useradd, и вы абсолютно можете это сделать, изменив файлы, содержащиеся в /etc/skel. /etc/skel содержит набор файлов, первоначально использовавшихся для заполнения домашнего каталога нового пользователя.
Одно существенное различие, с которым я столкнулся (и не увидел в ответе здесь ), заключается в последствиях создания системного пользователя .
useradd --system
, кажется, подразумевает --shell /bin/bash
, а adduser --system
подразумевает --shell /usr/sbin/nologin
, что я и хотел.
Так что, если мне не нужна ни оболочка, ни домашний каталог, я могу использовать useradd вот так
useradd --system --shell /usr/sbin/nologin foo
Что приводит, например, к. следующая запись в/etc/passwd
foo:x:994:991::/home/foo:/usr/sbin/nologin
Или используйте adduser вот так
adduser --system --no-create-home foo
Что приводит, например, к. следующая запись в/etc/passwd
foo:x:110:65534::/home/foo:/usr/sbin/nologin
Кроме того, adduser
не создает группу (пользователь 110 находится в группе 65534, она же нет группы). В принятом ответе также упоминаются риски, связанные с (G )UID, поэтому я определенно буду придерживаться adduser .
Источник :Протестировано на ОС Raspberry Pi (Основан на Debian Buster ).