LinuxForum.Fans
Тема

Отредактировать текстовую строку

Автор: vadoz 7 сообщений 2119 просмотров
#233726

Проблема в следующем. Мне необходимо написать скрипт, который бы показывал установленную на компе длину пароля. При этом необходимо, чтобы он выводил "чистую информацию" о пароле - только цифру (например 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 не охото морочитья, т.к. думаю решение данной задачи тривиально.

#233736

vadoz, покажите файл /etc/pam.d/system-auth.
У меня, например, это так:

text

lupo@gentoo-home ~ % cat /etc/pam.d/system-auth | awk '/minlen/ {print $5}' | awk -F'=' '{print $2}'
8

Можно и по-красивее что-нибудь придумать.

#233743
vadoz написал:
строки (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]

#233744
Lupo Alberto написал:
Можно и по-красивее что-нибудь придумать.

и так пойдёт :)

#233745

ИМХО по-красивее:
sed -ne '/.*minlen=\([0-9]\+\).*/{s//\1/;p}' /etc/pam.d/system-auth
[added]
опоздал... =)

#233746

#%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" - число попыток ввода пароля.

#233751

Всем спасибо echo 'password requisite pam_cracklib.so try_first_pass retry=3 minlen=4' | sed -r 's/.*\s+minlen=([0-9]+)\s*$/\1/' ------ это мне понравилось больше всего, теперь осталось разобраться smile

Войдите или зарегистрируйтесь, чтобы ответить.