У меня есть сервер SUSE, к которому подключаются ~ 300 пользователей.
Около 100 из них необходимо отключить. Я думаю, было бы неплохо изменить их оболочку на / bin / false либо с помощью chsh, либо с помощью usermod.
Должен ли я вводить каждую команду в каждой строке, или я могу заполнить список пользователей, который можно прочитать из сценария?
Я должен отметить, что все 100 пользователей имеют одинаковое окончание в имени пользователя. Могу ли я здесь работать с подстановочными знаками? например
usermod -s / bin / fish * ftpuser
chsh -s / sbin / nologin * ftpuser
Вы можете запустить сценарий оболочки следующим образом:
getent passwd|cut -d: -f1|while read user; do
case "$user" in
*ftpuser) echo usermod -s /bin/false "$user";;
esac
done
getent passwd
получает список пользователей (так же, как cat /etc/passwd
если вы не используете LDAP или аналогичный).
cut -d: -f1
получает первый столбик, например Пользователь.
Цикл while читает каждую строку ввода и проверяет регистр, соответствует ли пользователь шаблону.
Я вставил echo
перед usermod
команда, чтобы вы могли видеть, что будет выполнено. Если вы уверены, что команды в порядке, запустите сценарий без эха.
Другой способ - просто заблокировать учетную запись:
getent passwd|cut -d: -f1|while read user; do
case "$user" in
*ftpuser) passwd -l $user;;
esac
done
Аккаунт можно повторно открыть, сделав то же самое еще раз, но с passwd -u
вместо.