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