Как создать ограниченные учетные записи пользователей в Linux

Как создать ограниченные учетные записи пользователей в Linux

Я хочу создать учетную запись пользователя для каждой из ключевых программ, установленных на моем сервере Debian. Например, для следующих программ:

Tomcat Nginx Супервизор PostgreSQL

Это, кажется, рекомендуется на основе моего чтения в Интернете. Однако я хочу ограничить эти учетные записи пользователей настолько, насколько это возможно, чтобы у них не было входа в оболочку, не было доступа к другим программам и чтобы они были максимально ограничены, но все еще функциональны.

Кто-нибудь может мне подсказать, как этого можно достичь? Из того, что я прочитал, следует следующее:

echo "/usr/sbin/nologin" >> /etc/shells useradd -s /usr/sbin/nologin tomcat

Но я думаю, что, возможно, есть более полный способ сделать это.

EDIT: Я использую Debian Squeeze

решение1

Какой дистрибутив вы используете? Хорошие дистрибутивы уже настраивают свои установочные скрипты для таких пакетов, чтобы создавать пользователей, специфичных для демонов, которые могут выиграть от запуска в качестве отдельного пользователя. Некоторые пакеты разделяют пользователя, когда им нужно совместно читать/писать в различные файлы. Но во всех случаях они, как правило, имеют nologinв качестве своей оболочки входа, что уместно.

решение2

Я не знаю, поможет ли это вам или нет, просто посмотрите на это.

Я хочу максимально ограничить эти учетные записи пользователей,так что у них нет входа в оболочку

Для этого перед созданием учетной записи пользователя просто отредактируйте /etc/default/useraddфайл

Этот

  1 # файл useradd по умолчанию
  2 ГРУППА=100
  3 ДОМ=/дом
  4 НЕАКТИВНО=-1
  5 ИСТЕКАЕТ=
  6 ОБОЛОЧКА=/bin/bash
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=да

К этому

  1 # файл useradd по умолчанию
  2 ГРУППА=100
  3 ДОМ=/дом
  4 НЕАКТИВНО=-1
  5 ИСТЕКАЕТ=
  6 ОБОЛОЧКА=/bin/nologin
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=да

После изменения этого параметра, если вы создадите учетную запись пользователя, для всех этих учетных записей будет невозможно войти в систему.

Вот из-за этого

пользователь:x:1017:1017::/home/пользователь:/bin/нологин-----> запись в файле /etc/passwd

глянь сюда

[макс@localhost ~]$ su - пользователь
Пароль:
su: /bin/nologin: Нет такого файла или каталога
[макс@localhost ~]$

Вы можете получить это, отредактировав /etc/passwdфайл напрямую, нет необходимости редактировать/etc/default/useradd

файл, если пользователи меньше

просто измените последний подан

Этот

пользователь:x:1017:1017::/home/пользователь:/bin/bash

К этому

пользователь:x:1017:1017::/home/пользователь:/bin/nologin

Связанный контент