Вопрос: Как запретить пользователю войти в систему, но разрешить «su - user» в Linux?


Как вы разрешаете пользователю входить в систему, используя "su -  пользователь", но запретить пользователю войти в систему с помощью SSH?

Я попытался установить оболочку на /bin/false но когда я пытаюсь su он не работает.

Существует ли несколько способов разрешить su?

Является ли SSH AllowUser путь? (как бы я это сделал, если это путь)


85
2018-06-09 15:13


Источник




Ответы:


Вы можете использовать AllowUsers / AllowGroups если у вас есть только несколько пользователей / групп, которым разрешено входить через ssh или DenyUsers / DenyGroups если у вас есть только несколько пользователей / групп, которые не разрешено входить в систему. Обратите внимание, что это ограничивает только регистрацию через ssh, все еще возможны другие способы входа (console, ftp, ...). Вам нужно добавить эти параметры в свой / И т.д. / SSH / sshd_config файл для большинства установок ssh.

Если вы установили оболочку входа в систему / Бен / ложь вы можете использовать su -s /bin/bash user (заменить / Бен / Баш с оболочкой по вашему выбору)


107
2018-06-09 15:40



спасибо многим. Я не ожидал получить 2+ upvotes по моему вопросу :) Мне нравится «su -s ...» построить много, и консоль / ftp - хорошая точка. Я действительно был чем-то вроде «su -s». - NoozNooz42
Су-трюк - золото. Я использую его все время для системных учетных записей, которые мне нужны для проверки разрешений для, например, apache, никто и т. Д. Обычно я делаю su - user -s / bin / bash. Необязательный аргумент - может использоваться для обеспечения среды, аналогичной ожидаемой пользователем, если бы пользователь зарегистрировался напрямую. - dmourati
Если вам нужны переменные среды (например, из / etc / profile) для загрузки, передача дополнительной тире сделает это: su - -s /bin/bash user - Leons


Если вы все еще хотите, чтобы su работал, вы можете использовать sudo -u [username] или пройти -s /bin/bash к su как временная оболочка. Они оба делают то же самое в отсутствие оболочки в /etc/passwd,


13
2018-02-18 10:04





Если учетная запись не имеет пароля (passwd -d имя пользователя), они не могут входить в систему интерактивно (консоль, SSH и т. д.). Если у них есть действительная оболочка, су будет по-прежнему работать. Обратите внимание на «интерактивно»; если кто-то решит создать SSH-ключ для учетной записи, он будет работать!


6
2018-06-09 15:53



нужно ли пользователю иметь действительную оболочку для su? Я уверен, что вы все еще в одной и той же исходной оболочке после того, как вы с другим пользователем ... вы фактически не входите в систему как другой пользователь ... Итак, просто установка оболочки на / dev / null может работать также. - Brian Postow
Да, он все еще нуждается в действительной оболочке: [root @ localhost ~] # su daemon Эта учетная запись в настоящее время недоступна. [root @ localhost ~] # su - daemon Эта учетная запись в настоящее время недоступна. (Система RHEL, оболочка демона is / sbin / nologin) - astrostl


В sshd_config добавьте строку DenyUser [username]

Обратите внимание, что это не помешает пользователю войти в систему через консоль.


3
2018-06-09 15:28



Которые должны быть DenyUsers, с 's'. - David G


В дополнение к тому, что было упомянуто выше (отключить и / или не устанавливать пароль пользователя), модуль pam_access (поиск справочной страницы на pam_access и access.conf) может использоваться для управления доступом к входам.


2
2017-09-27 22:16





как говорили другие;

DenyUser username или DenyGroup groupname в sshd_config предотвратит вход в keypair / password через ssh.

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

то вы можете поступать так, как говорили другие: passwd -d username для удаления пароля пользователя, чтобы они не могли войти в консоль или каким-либо другим способом. или еще лучше passwd -l username «заблокировать» учетную запись. возможно, ssh запретит доступ к заблокированной учетной записи, даже с ключами, но я не уверен.


1
2018-06-09 16:15



Фактически ssh позволит вам войти в систему, используя аутентификацию ключа, даже если пароль учетной записи заблокирован. - Richard Holloway
Полезно знать, спасибо за разъяснение ... - cpbills


Как я уже упоминал в комментарии, я думаю, что вы все еще можете войти в учетную запись с недопустимой оболочкой. Поэтому, если вы установите оболочку пользователя в / dev / null или что-то вроде оболочки bin, вы должны быть в состоянии все еще su в этом пользователе ... но любая попытка войти в систему каким-либо образом прекратит вам работу ...


1
2018-06-09 16:26





отредактируйте / etc / shadow, добавив! к началу хеша пароля.

username:!<hash>:#####:#:#####:#:::

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


1
2017-12-31 01:38





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

# passwd -d myuser

0
2018-06-09 15:50





Предполагая, что вы хотите использовать пользователя su только из учетной записи root и отключить все остальные права доступа:

Используйте это (запустите от имени root):

usermod -e 1 -L user

Это отключает логин паролей (как и многие другие ответы) но также истекает срок действия учетной записи, Вы не можете войти в аккаунт с истекшим сроком действия, например. с ключами SSH. Вы все еще можете su user, хотя в нем будет указано, что учетная запись истекла.


0
2017-11-18 13:49





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

Вы хотите ограничить доступ к SSH? Вам нужен доступ для почтовых или ssh-методов? Доступ только из корня?

su - user потребуется пароль для пользователя, если он запущен как пользователь, отличный от root. Однако, sudo -u user -i не требует пароля для пользователя.


0
2018-06-09 16:25