Я хочу создать учетную запись пользователя для каждой из ключевых программ, установленных на моем сервере debian. Например, для следующих программ:
Tomcat Nginx Supervisor PostgreSQL
Это кажется рекомендованным на основании моего чтения в Интернете. Однако я хочу максимально ограничить эти учетные записи пользователей, чтобы у них не было входа в оболочку, не было доступа к другим программам и было максимально ограничено, но все же работоспособно.
Кто-нибудь не возражает рассказать мне, как этого можно достичь? Мое чтение предполагает следующее:
echo "/usr/sbin/nologin" >> /etc/shells
useradd -s /usr/sbin/nologin tomcat
Но я думаю, что есть более полный способ сделать это.
РЕДАКТИРОВАТЬ: я использую сжатие debian
Это правильный путь, но вы должны указать, что это системный пользователь, чтобы /etc/shadow
не будет никакой информации о старении. Из useradd
страница руководства:
-r, --system
Create a system account. System users will be created with no aging information in /etc/shadow, and their numeric identifiers are choosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the creation of groups). Note that useradd will not create a home directory for such an user, regardless of the default setting in /etc/login.defs (CREATE_HOME). You have to specify the -m options if you want a home directory for a system account to be created.
Итак, вам нужно что-то вроде:
useradd -s /usr/sbin/nologin -r -M tomcat
Вы также можете создать домашний каталог, если хотите, может быть, что-то, что принадлежит службе, например:
useradd -s /usr/sbin/nologin -r -M -d /etc/nginx nginx