Назад | Перейти на главную страницу

Создать ограниченного пользователя на сервере Debian

Я хочу создать учетную запись пользователя для каждой из ключевых программ, установленных на моем сервере 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