it-swarm-ru.tech

Как мне полностью отключить аккаунт?

Как мне полностью отключить аккаунт? passwd -l не позволит никому войти в учетную запись, используя пароль, но вы все равно можете войти через закрытые/открытые ключи. Как бы я полностью отключил аккаунт? В качестве быстрого исправления я переименовал файл в authorized_keys_lockme. Есть ли другой способ?

49
user4069

Правильный путь в соответствии с usermod(8):

usermod --lock --expiredate 1970-01-02 <username>

(Собственно, аргумент к --expiredate может быть любой датой до текущей даты в формате YYYY-MM-DD.)


Объяснение:

  • --lock блокирует пароль пользователя. Однако вход в систему другими способами (например, с открытым ключом) все еще возможен.

  • --expiredate YYYY-MM-DD отключает учетную запись на указанную дату. В соответствии с man shadow 5 1970-01-01 является неоднозначным значением и не должно использоваться.

Я проверил это на своей машине. После выполнения этой команды невозможно войти в систему с паролем или открытым ключом.


Чтобы позже включить учетную запись, вы можете запустить:

usermod --unlock --expiredate '' <username>
61
Christoph Wurm

Заблокируйте пароль и измените Shell на /bin/nologin.

Sudo usermod --lock --Shell /bin/nologin username

(Или более кратко, Sudo usermod -L -s /bin/nologin username.)

10
mattdm

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

Чтобы заблокировать аккаунт:

# chage -E 0 username

Учетная запись пользователя 'username' будет заблокирована в системе. Чтобы снова включить учетную запись пользователя, выполните следующие действия.

чтобы разблокировать аккаунт:

# chage -E -1 username

Учетная запись пользователя 'username' будет повторно активирована в вашей системе с тем же паролем, как и раньше. Двоичный файл 'chage' является частью пакета shadow-utils в Red Hat Linux или passwd в Debian Linux.

4
miklosq

У меня нет достаточного количества представителей, чтобы комментировать ответ Легата, но я хотел бы поделиться, что этот ответ помог нам в другом случае использования:

1.) рассматриваемая учетная запись - это локальная учетная запись службы, на которой выполняется приложение, а не учетная запись конечного пользователя.

2.) Конечные пользователи SSH в качестве самих себя, и Sudo /bin/su <user> стать пользователем и администрировать приложение из-за требования контрольного журнала, согласно которому учетная запись службы не может иметь возможность прямого входа в систему.

3.) Учетная запись службы должна иметь действующую оболочку (/bin/bash, а не /sbin/nologin), поскольку платформа Enterprise Scheduling Platform (агент запускается как 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, поэтому планировщик работает правильно, и авторизованные конечные пользователи могут стать целевой учетной записью службы по мере необходимости.

Спасибо за решение!

3
user1880028

Чтобы полностью удалить его, используйте userdel.

Обратите внимание, что если вы удаляете учетную запись, существует риск того, что ее идентификатор пользователя все еще будет использоваться в файловой системе где-то, и новый пользователь наследует права собственности на эти файлы, если он вошел под тем же идентификатором пользователя.

Вы хотели бы изменить владельца любых файлов, которые принадлежат удаленному пользователю.

Если вы хотите добавить пользователя позже, сохраните его строки из /etc/passwd (и на Solaris /etc/shadow) во временные файлы, такие как /etc/passwd_deleted.

Таким образом, когда вы добавляете его обратно, вы можете использовать тот же идентификатор пользователя и тот же пароль (который зашифрован в одном из вышеуказанных файлов)

Отказ от ответственности: я изучил UNIX самостоятельно, поэтому я не удивлюсь, если есть лучший способ временно отключить пользователя. На самом деле, я даже не знаю, о каких секретных/открытых ключах вы говорите. Также я уверен, что есть команда find, которую можно использовать для поиска файлов с этим владельцем ID пользователя

1
Bryan Field

Кто-нибудь пробовал делать это через ssh_config? Может быть, это могло бы помочь http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-securely/86

Кроме того, убедитесь, что для PasswordAuthentication также установлено значение no, чтобы все логины использовали открытые ключи.

0
icasimpan