У нас есть несколько учетных записей, которые мы создаем для автоматизированных задач, требующих детальных разрешений, таких как передача файлов между системами, мониторинг и т. Д.
Как мы можем заблокировать эти учетные записи пользователей, чтобы эти «пользователи» не имели оболочки и не могли войти? Мы хотим предотвратить возможность того, что кто-то может использовать SSH в качестве одной из этих учетных записей пользователей.
/bin/false
кажется более распространенным, чем/bin/true
.nologin
самом деле можно найти на/usr/sbin/nologin
nologin
/usr/local/bin/maybe
который/dev/urandom
выбирает между этими двумя. Возможно я должен использовать это: DИзменение оболочки входа не обязательно препятствует аутентификации пользователей (за исключением некоторых служб, которые проверяют, упоминается ли оболочка пользователя
/etc/shells
).Люди по-прежнему могут проходить проверку подлинности в различных службах, которые ваша система предоставляет пользователям Unix, и могут по-прежнему иметь право выполнять некоторые действия, хотя, возможно, не выполняют произвольные команды напрямую.
Изменение оболочки на
/bin/false
или/usr/sbin/nologin
запретит им запускать команды только в тех службах, которые можно использовать для запуска команд (вход в консоль, ssh, telnet, rlogin, rexec ...), поэтому влияет на авторизацию только для некоторых служб.Для
ssh
, например, что по- прежнему позволяет им делать перенаправление портов.passwd -l
отключит аутентификацию по паролю, но пользователю все равно может быть разрешено использовать другие методы аутентификации (например,authorized_keys
сssh
).По
pam
крайней мере, в Linux вы можете использоватьpam_shells
модуль для ограничения аутентификации или авторизации для пользователей с разрешенной оболочкой (упомянутой в/etc/shells
). Дляssh
, вы хотите сделать это при авторизации (account
) уровня , как для аутентификацииsshd
использованияpam
в дополнение к другим методам аутентификации (какauthorized_keys
), или вы можете сделать это сsshd_config
директивами/etc/ssh/sshd_config
(какAllowUsers
и друзей).Однако следует помнить, что добавление некоторых ограничений в глобальную авторизацию pam может помешать запуску
cron
заданий от имени этих пользователей.источник
:|
Вы редактируете
/etc/passwd
файл и меняете оболочку пользователя с/bin/bash
или/bin/sh
на/sbin/nologin
источник
vipw
что предотвращает такую ошибку.Сначала отключите пароль, используя
passwd -l username
.Также обратите внимание на
man
страницеpasswd
для варианта-l
:источник
Вы можете использовать команду chsh:
Введите новые данные оболочки при запросе:
Или более короткая версия:
источник
Чтобы запретить пользователю входить в систему и даже проходить аутентификацию через ssh, который включает переадресацию портов (как описано здесь, Стефан), я изменяю пользователя так, чтобы он был похож на
nobody
пользователя системы :/etc/shadow
(с*
или!!
в соответствующем поле)/etc/passwd
(например,/sbin/nologin
в соответствующем поле)/etc/passwd
(например,/
в соответствующем поле)источник