Проблема в следующем. Мне необходимо написать скрипт, который бы показывал установленную на компе длину пароля. При этом необходимо, чтобы он выводил "чистую информацию" о пароле - только цифру (например 5).
У меня в данный момент возникла проблема как из полученной, после выполнения команды:
cat /etc/pam.d/system-auth | grep pam_cracklib.so | grep minlen
строки (password requisite pam_cracklib.so try_first_pass retry=3 minlen=4)
изъять (допустим вывести на консоль) только minlen=4 или еще лучше просто 4.
Командами sed, grep сделать не получилось, а с awk не охото морочитья, т.к. думаю решение данной задачи тривиально.
Отредактировать текстовую строку
vadoz, покажите файл /etc/pam.d/system-auth.
У меня, например, это так:
lupo@gentoo-home ~ % cat /etc/pam.d/system-auth | awk '/minlen/ {print $5}' | awk -F'=' '{print $2}'
8
Можно и по-красивее что-нибудь придумать.
строки (password requisite pam_cracklib.so try_first_pass retry=3 minlen=4)
изъять (допустим вывести на консоль) только minlen=4 или еще лучше просто 4.
[console]$ echo 'password requisite pam_cracklib.so try_first_pass retry=3 minlen=4' | sed -r 's/.*\s+minlen=([0-9]+)\s*$/\1/'
4
[/console]
Можно и по-красивее что-нибудь придумать.
и так пойдёт :)
ИМХО по-красивее:
sed -ne '/.*minlen=\([0-9]\+\).*/{s//\1/;p}' /etc/pam.d/system-auth
[added]
опоздал... =)
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 minlen=4
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
на сколько я понял, эта команда (lupo@gentoo-home ~ % cat /etc/pam.d/system-auth | awk '/minlen/ {print $5}' | awk -F'=' '{print $2}') будет работать в частном случае, т.к. выводится "print $5" поле. необходимо чтобы скрипт работал при любой конфигурации данного файла. В моем случае эта команда выводит "3" - число попыток ввода пароля.
Всем спасибо echo 'password requisite pam_cracklib.so try_first_pass retry=3 minlen=4' | sed -r 's/.*\s+minlen=([0-9]+)\s*$/\1/' ------ это мне понравилось больше всего, теперь осталось разобраться smile