Как мне полностью отключить аккаунт? passwd -l
не позволит никому войти в учетную запись, используя пароль, но вы все равно можете войти через закрытые / открытые ключи. Как бы я полностью отключил аккаунт? В качестве быстрого исправления я переименовал файл в authorized_keys_lockme
. Есть ли другой способ?
users
account-restrictions
Braiam
источник
источник
Ответы:
Правильный путь в соответствии с
usermod(8)
:(На самом деле аргумент to
--expiredate
может быть любой датой до текущей даты в форматеYYYY-MM-DD
.)Объяснение:
--lock
блокирует пароль пользователя. Однако вход в систему другими способами (например, с открытым ключом) все еще возможен.--expiredate YYYY-MM-DD
отключает учетную запись на указанную дату. Согласноman shadow 5
1970-01-01 является неоднозначным значением и не должно использоваться.Я проверил это на своей машине. Ни логин с паролем, ни открытый ключ невозможны после выполнения этой команды.
Чтобы позже включить учетную запись, вы можете запустить:
источник
usermod --unlock --expiredate '' username
, сделаем это.usermod
Note: if you wish to lock the account (not only access with a password), you should also set the EXPIRE_DATE to 1.
--expiredate 1
не хватает само по себе?sudo su username
похоже, работает с использованием другого аккаунта.Заблокируйте пароль и измените оболочку на
/bin/nologin
.(Или более кратко
sudo usermod -L -s /bin/nologin username
.)источник
ssh username@hostname /bin/bash
, предоставит пользователю приглашение bash независимо от оболочки по умолчанию.sudo chsh -s /bin/nologin
было бы лучше, чем редактирование/etc/passwd
вручную. Кроме того, в некоторых системах это так/sbin/nologin
.Вот еще один простой способ. Вы можете установить срок действия учетной записи пользователя. Это предотвратит вход в систему как по паролю, так и по ssh-ключу, но не затронет пароль.
Чтобы заблокировать аккаунт:
Учетная запись пользователя 'username' будет заблокирована в системе. Чтобы снова включить учетную запись пользователя, выполните следующие действия.
Чтобы разблокировать аккаунт:
Учетная запись пользователя 'username' будет повторно активирована в вашей системе с тем же паролем, что и раньше. Двоичный файл 'chage' является частью пакета shadow-utils в Red Hat Linux или пакета passwd в Debian Linux.
источник
У меня нет достаточного количества представителей, чтобы комментировать ответ Легата, но я хотел бы поделиться, что этот ответ помог нам в другом случае использования:
1.) рассматриваемая учетная запись - это локальная учетная запись службы, на которой выполняется приложение, а не учетная запись конечного пользователя.
2.) Конечные пользователи ssh в качестве самих себя, и
sudo /bin/su <user>
стать пользователем и администрировать приложение из-за требования контрольного журнала, что учетная запись службы не может иметь возможность прямого входа в систему.3.) Учетная запись службы должна иметь допустимую оболочку (а
/bin/bash
не/sbin/nologin
), потому что платформа планирования предприятия (агент запускается как root локально) должна иметь возможность,su - <user>
а неsu -s /bin/bash <user>
способность полной оболочки, и необходима для удаленного запуска заданий. для больших пакетных операций, охватывающих несколько серверов и баз данных.Итак ...
passwd -l <user>
Не удовлетворяет ограничениям, потому что аутентификация с открытым ключом обходит PAM и все еще позволяет прямой вход в систему.
usermod -s /sbin/nologin <user>
Не удовлетворяет ограничениям, потому что нарушает планировщик предприятия
usermod --lock --expiredate 1970-01-01 <user>
Это наш победитель. Удаленный вход в систему отключен, но root все еще может
su <user>
, как и другие пользователи,sudo
так что планировщик функционирует должным образом, и авторизованные конечные пользователи могут стать целевой учетной записью службы по мере необходимости.Спасибо за решение!
источник
Чтобы полностью удалить его используйте
userdel
.Обратите внимание, что если вы удаляете учетную запись, существует риск того, что ее идентификатор пользователя все еще будет использоваться в файловой системе где-то, и новый пользователь наследует права собственности на эти файлы, если он вошел под тем же идентификатором пользователя.
Вы хотите изменить владельца любых файлов, которые принадлежат удаленному пользователю.
Если вы хотите добавить пользователя позже, сохраните его строки из
/etc/passwd
(и в Solaris/etc/shadow
) во временные файлы, такие как/etc/passwd_deleted
.Таким образом, когда вы добавляете его обратно, вы можете использовать тот же идентификатор пользователя и тот же пароль (который зашифрован в одном из вышеуказанных файлов)
Отказ от ответственности: я изучил UNIX самостоятельно, поэтому я не удивлюсь, если есть лучший способ временно отключить пользователя. На самом деле, я даже не знаю, о каких секретных / открытых ключах вы говорите. Также я уверен, что есть
find
команда, которая может быть использована для поиска файлов с этим владельцем.источник
Кто-нибудь пробовал делать это через ssh_config? Может быть, это может помочь http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-securely/86
источник