Назад | Перейти на главную страницу

Изменить / деактивировать оболочку для определенного количества пользователей на SUSE Enterprise Server

У меня есть сервер 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 вместо.