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

Как выполнить с / bin / false shell

Я пытаюсь настроить сценарии fastcgi для каждого пользователя, которые будут запускаться каждый на другом порту и с другим пользователем. Вот пример моего сценария:

#!/bin/bash
BIND=127.0.0.1:9001
USER=user
PHP_FCGI_CHILDREN=2
PHP_FCGI_MAX_REQUESTS=10000

и т.д...

Однако, если я добавлю пользователя с / bin / false (чего я хочу, так как это будет что-то вроде общего хостинга, и я не хочу, чтобы у пользователей был доступ к оболочке), сценарий запускается под 1001, 1002 'user' что, как показал мой поиск в Google, может быть дырой в безопасности. Мой вопрос: можно ли разрешить пользователям выполнять сценарии оболочки, но отключить их, чтобы они не могли входить в систему через SSH?

Во-первых, зачем вам /bin/false как оболочка пользователя? Почему бы просто не иметь /bin/bash как оболочка, и AllowGroups или DenyGroups установка в sshd_config? Это решает проблему входа в систему по ssh. Будет ли у пользователя доступ к оболочке без прав входа в систему через ssh?

В качестве альтернативы вы можете настроить сценарий пользовательской среды в качестве оболочки пользователя и поместить пользователя AllowGroups или DenyGroup установка в sshd_config. Конечно, ваш сценарий должен быть заблокированным. Это решает проблему с пользовательской средой и проблему входа в систему по ssh.

Другими словами, какую проблему вы пытаетесь решить?

Использовать DenyUsers или DenyGroups настройки в sshd_config.

Это возможно, но если вы уберете их оболочку, то нет, они не смогут выполнять сценарии оболочки. Нет ничего необычного в том, чтобы установить оболочку пользователя на / sbin / nologin, но это приведет к тому же результату, что и установка оболочки на false.

Самый прямой ответ, который был предложен, - это отредактировать sshd_config и ограничить доступ к оболочке там.

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

Попробуйте использовать / bin / true вместо / bin / false и посмотрите, повлияет ли это на него.

/ bin / false всегда возвращает ненулевое значение, что может вызвать проблемы. / bin / true будет работать так же, как / bin / false, за исключением того, что возвращает ноль.

Вы можете полностью заблокировать удаленный вход пользователя в систему с помощью PAM:

/etc/security/access.conf:

- : user : ALL EXCEPT LOCAL

Вместо одного пользователя вы можете использовать группу. Подробности в man access.conf Тогда нет необходимости устанавливать пользовательскую оболочку на / bin / false.