Как запретить удаленный вход в систему, но включить локальное 'su username'

8061
lexu

Мы пишем приложение (perl, mysql), которое будет работать без * на nix (вероятно, CENTOS).

Как настроить / защитить локального пользователя / пароль для учетной записи «приложение» (где приложение будет запущено), чтобы,

  • удаленный ssh-вход в систему невозможен
    ssh работает, так что вход в систему для всех учетных записей, но мне нужно защитить эту единственную учетную запись
  • «su app» работает для пользователей с существующими учетными записями

Как называется такая установка? Я, конечно, не первый, кто пробует это, это должно быть задокументировано много раз, но я не могу найти соответствующие условия поиска для Google.


РЕДАКТИРОВАТЬ: Решение

Я добавил строки:

# prevent certain users from using ssh for login # while retaining the option to 'su username' DenyUsers app 

в / etc / ssh / sshd_config

затем перезапустите sshd используя

service sshd restart 

Теперь я могу войти как 'user' через ssh и 'su app', чтобы работать как приложение.

0

2 ответа на вопрос

2
akira

поместите всех пользователей в группу 'remote_users' и укажите в своем sshd.conf, что только пользователи из этих групп могут входить через ssh:

AllowGroups  This keyword can be followed by a list of group name patterns, separated by spaces. If specified, login is allowed only for users whose primary group or supplementary group list matches one of the patterns. Only group names are valid; a numerical group ID is not recognized. By default, login is allowed for all groups. The allow/deny directives are processed in the following order: DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups. 
установка оболочки входа в систему / bin / false не дает локальному пользователю возможности использовать «su app» или «su - app» lexu 14 лет назад 0
просто как побочный вопрос: почему пользователи должны делать это 'su app' в любом случае? akira 14 лет назад 0
Почему нельзя просто запретить группе «app» / пользователю запретить вход через sshd.conf? foraidt 14 лет назад 0
@akira: не все пользователи, только некоторые. Они должны редактировать crontable, изменять конфигурационные файлы, запускать задания и т. Д., Которые зависят от учетных данных пользователя «app». Мы не хотим, чтобы они входили в систему как «приложение», поэтому они чувствуют, что система может их идентифицировать => уберечь виновных от неприятностей. lexu 14 лет назад 0
@mxp и @akira: я посмотрю на возможности sshd.cond, thx lexu 14 лет назад 0
Я отредактировал sshd_conf, добавив строку приложения DenyUser (плюс документация) .. перезапустил сервер => работает, как и ожидалось, спасибо! lexu 14 лет назад 0
что ж, я скорее даю доступ к explizit, чем отказываю только нескольким ... вот почему я предпочитаю allowgroups но если это работает для вас .. тогда это работает :) akira 14 лет назад 0
0
innaM

Если вы используете ключи openssh для входа через ssh, вы можете просто запретить логин паролей для всех учетных записей. suИнг все еще будет возможно.

Это было рассмотрено, но отклонено, так как пользователи не всегда могли иметь с собой ключи ssh (я утверждал, что вход в систему на домашний сервер, а затем в ssh-доступ к цели-приложения не проходил / считался сложным) lexu 14 лет назад 0
ХОРОШО. Технически все еще возможность, хотя. innaM 14 лет назад 0

Похожие вопросы