Как исключить блокировку определенного пользователя после неактивных дней

Правильный способ проверки всего массива:

[[ ${ar[@]+set} == set ]] && echo "array has a value may be a null"

То, что вы написали, является тестом для значения с индексом 0. Эти два эквивалентны:

${ar+set}
${ar[0]+set}

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

Но на ваш вопрос :Почему массив не установлен, если он назначен ()?

Поскольку вы не присвоили какое-либо значение,даже не нуль, к любому индексу массива.
Чтобы установить некоторый индекс (и, следовательно, массив ), вам нужно что-то вроде:

$ declare -a ar=([3]="value")

Или даже:

$ declare -a ar=([3]="")

zsh (даже в эмуляции sh или ksh )единственная из всех протестированных оболочек (как обычно, специальная ), которая объявляет массив как набор с помощью:

$ unset ar; typeset -a ar=(); echo $(typeset -p ar) ${ar[@]+set}

Вопрос из комментариев:

Thanks. Can ar[@] be replaced with ar[*] here? Are they array variables?

Нет, "${ar[*]}"— это объединение строк всех значений массива.

Однако в этом конкретном расширении :"${ar[*]+set}" оба эквивалентны.

Из руководства (в Arrays):

If subscript is @ or *, the word expands to all members of name.

0
17.07.2019, 16:07
1 ответ

Есть два способа избежать запрета пользователю на вход в систему после истечения дней неактивности.

1-й метод:от имени администратора и выполнение " su " от имени заблокированного пользователя, запись lastlog будет обновлена, что позволит ему войти в систему. Но это не сработает, если в /etc/pam.d/system -auth и /etc/ добавлено правило «pam _lastlog inactive ». pam.d/password -auth или в /etc/pam.d/su

2-й метод:путем добавления другого временного правила PAM с использованием pam _успеха _, если модуль находится чуть выше строки правила « pam _lastlog inactive »

auth    [success=1 default=ignore] pam_succeed_if.so user in username
auth       required     pam_lastlog.so inactive=5
0
28.01.2020, 03:27

Теги

Похожие вопросы