Курсовая работа: Управление учетными записями пользователей
test -n "$verbose" && echo "$@"
}
# Построение случайного пароля.
# Если программа pwgen доступна, используем
# Если программа недоступна, читаем /dev/urandom и отфильтровываем все
# символы, не являющиеся алфавитно-цифровыми, пока количество символов
# не окажется достаточным для пароля. Символы в "tr -d" определяют
# ASCII-коды (в восьмеричной записи) диапазонов удаляемых символов.
randompass () {
pwgen $pass_len 1 2>&- ||
tr -d '[\000-\057][\072-\100][\133-\140][\173-\377]' < /dev/urandom |
dd bs=$pass_len count=l 2>&-
}
# Функция интерпретирует режим (пользователи / группы / серийная замена)
# и возвращает список имен пользователей
get_users () {
if [ -n "$all_mode" ]: then
getent passwd | awk -F: '{if ($3 >= '$min_uid') (print $1}}'
return
fi
if [ -z "$group_mode" ]: then
echo "$@"
return
while [ -n "$1" ] : do
g_ent=$(getent group "$1" 2>&-)
i f [ -z "$g_ent" ] : then
echo >&2 "warning: $1: group not found"
continue
fi