Как разрешить пользователю войти в систему с помощью "su -
пользователь"но запретить пользователю входить в систему по SSH?
Я попытался настроить оболочку на /bin/false
но когда я пытаюсь su
это не работает.
Есть ли несколько способов разрешить вход только su
?
SSH's AllowUser
путь идти? (как бы я это сделал, если так будет)
Ты можешь использовать AllowUsers / AllowGroups если у вас всего несколько пользователей / групп, которым разрешен вход через ssh или DenyUsers / DenyGroups если у вас всего несколько пользователей / групп, которые не разрешено войти. Обратите внимание, что это ограничивает вход только через ssh, другие способы входа (консоль, ftp, ...) все еще возможны. Вам необходимо добавить эти параметры в свой / и т.д. / SSH / sshd_config файл для большинства установок ssh.
Если вы установили оболочку входа в / bin / false ты можешь использовать su -s /bin/bash user
(заменить / bin / bash с оболочкой по вашему выбору)
Если вы все еще хотите, чтобы su работал, вы можете использовать sudo -u [username]
или пройти -s /bin/bash
su как временная оболочка. Они оба делают то же самое при отсутствии оболочки в /etc/passwd
.
Если у учетной записи нет пароля (passwd -d имя пользователя), они не могут войти в систему в интерактивном режиме (консоль, SSH и т. д.). Если у них есть действующая оболочка, вс все равно будет работать. Однако обратите внимание на «интерактивно»; если кто-то решит настроить пару ключей SSH для учетной записи, это сработает!
В sshd_config добавьте строку DenyUser [username]
Обратите внимание, что это не помешает этому пользователю войти в систему через консоль.
В дополнение к тому, что было упомянуто выше (отключить и / или не устанавливать пароль пользователя), модуль pam_access (см. Справочную страницу на pam_access и access.conf) может использоваться для управления доступом для входа в систему.
как говорили другие;
DenyUser username
или DenyGroup groupname
в sshd_config
предотвратит вход в систему с паролем / ключом через ssh.
хотя я обычно делаю что-то вроде AllowGroup ssh
или что-то в этом роде, и явно добавить людей, которым нужен ssh-доступ, в эту группу.
тогда вы можете сделать, как говорили другие: passwd -d username
чтобы очистить пароль пользователей, чтобы они не могли войти в систему с консоли или каким-либо другим способом. или еще лучше passwd -l username
чтобы «заблокировать» учетную запись. возможно, ssh откажет в доступе к заблокированной учетной записи, даже с ключами, но я не уверен.
Как я уже упоминал в комментарии, я думаю, что вы все еще можете использовать su для учетной записи с недопустимой оболочкой. Поэтому, если вы установите оболочку пользователя на / dev / null или другую оболочку bin, вы все равно сможете выполнить su для этого пользователя ... но любая попытка войти в систему каким-либо образом приведет к выходу вас обратно ...
отредактируйте / etc / shadow, добавив! в начало хэша пароля.
username:!<hash>:#####:#:#####:#:::
При обеспечении безопасности новой установки это первое, что я делаю после установки sudo, поэтому никто не может использовать пользователя root для входа или ssh в систему, пользователи sudo могут по-прежнему работать как пользователь root.
Выбор лучшего механизма зависит от требований. Если вы знаете требования, вы можете выбрать подходящий механизм. Все приведенные выше ответы действительны для некоторого набора требований.
Вы хотите ограничить только доступ по SSH? Вам нужен доступ к почте или ssh? Доступ только из root?
su - user
потребует пароль для пользователя, если он запущен от имени пользователя, отличного от root. Тем не мение, sudo -u user -i
не требует пароля для пользователя.
Не указывайте пароль для пользователя, которому не разрешено входить в систему, и не удаляйте его.
# passwd -d myuser
Предполагая, что вы хотите только su пользователя из учетной записи root и отключить весь другой доступ:
Используйте это (запускайте как root):
usermod -e 1 -L user
Это отключает вход по паролю (как советовали многие другие ответы), но также истекает срок действия учетной записи. Вы не можете войти в учетную запись с истекшим сроком действия, например с ключами SSH. Вы все еще можете su user
, хотя будет отображаться уведомление о том, что срок действия учетной записи истек.