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