Гугление легко приводит к сообщению в списке рассылки Debian, которое на самом деле является ошибкой Debian #578704, предлагаемым дополнением к заметкам о выпуске (вырезано):
Поскольку переписанная версия имеет абсолютно нулевую совместимость с предыдущими версиями, она не будет обновляться на месте. Поэтому, хотя вновь установленные системы получат GDM 2.30 по умолчанию для сквида, те. обновившиеся с lenny, получат GDM 2.20. Версия 2.20 будет отменена после выхода squeeze.
Поскольку вывод passwd --status
указывает, не имеет ли пользователь пароля ("нет пароля (NP )" ), можно проверить, что:
if [[ $(passwd --status "$i" | awk '{print $2}') = NP ]]
then
echo "$i doesn't have a password."
fi
Или:
case $(passwd --status "$i" | awk '{print $2}') in
NP) echo "$i doesn't have a password."
# set password here.
;;
L) echo "$i's account is locked." ;;
P) echo "$i has a password." ;;
esac
Мы также можем проверить /etc/password
, если у нас есть доступ.
if [ `awk -F ':' '/^'$i':/ {print $2}' /etc/shadow` ] ; then
echo "User has passwd" ;
else
echo "NO passwd";
fi
Как насчет:
if [ `passwd -S ${i} | cut -d" " -f2` == "P" ]; then do some stuff; fi