sudo pam-auth-update --package face_authentication
Use of uninitialized value $fieldname in hash element at /usr/sbin/pam-auth-update line 691, <PROFILE> line 1.
Use of uninitialized value $fieldname in hash element at /usr/sbin/pam-auth-update line 692, <PROFILE> line 1.
Use of uninitialized value in numeric comparison (<=>) at /usr/sbin/pam-auth-update line 103, <STDIN> line 3.
Use of uninitialized value in numeric comparison (<=>) at /usr/sbin/pam-auth-update line 103, <STDIN> line 3.
Use of uninitialized value in numeric comparison (<=>) at /usr/sbin/pam-auth-update line 103, <STDIN> line 3.
Use of uninitialized value in numeric comparison (<=>) at /usr/sbin/pam-auth-update line 103, <STDIN> line 3.
Use of uninitialized value in join or string at /usr/sbin/pam-auth-update line 111, <STDIN> line 4.
Use of uninitialized value in string eq at /usr/sbin/pam-auth-update line 143.
해당 파일의 해당 줄은 다음과 같습니다.
Line 101-130:
# always sort by priority, so we have consistency and don't have to
# shuffle later
@sorted = sort { $profiles{$b}->{'Priority'} <=> $profiles{$a}->{'Priority'}
|| $b cmp $a }
keys(%profiles);
# If we're being called for package removal, filter out those options here
@sorted = grep { !$removals{$_} } @sorted;
subst($template, 'profile_names', join(', ',@sorted));
subst($template, 'profiles',
join(', ', map { $profiles{$_}->{'Name'} } @sorted));
my $diff = diff_profiles($confdir,$savedir);
if ($diff) {
@enabled = grep { !$removals{$_} } @{$diff->{'mods'}};
} else {
@enabled = split(/, /,get($template));
}
# find out what we've seen, so we can ignore those defaults
my %seen;
if (-e $savedir . '/seen') {
open(SEEN,$savedir . '/seen');
while (<SEEN>) {
chomp;
$seen{$_} = 1;
}
close(SEEN);
}
Line 140-147:
# add any previously-unseen configs
push(@enabled,
grep { $profiles{$_}->{'Default'} eq 'yes' && !$seen{$_} } @sorted);
@enabled = sort { $profiles{$b}->{'Priority'} <=> $profiles{$a {'Priority'}
|| $b cmp $a }
@enabled;
my $prev = '';
@enabled = grep { $_ ne $prev && (($prev) = $_) } @enabled;
and line 675-695:
while (<PROFILE>) {
if (/^(\S+):\s+(.*)$/) {
$fieldname = $1;
# compatibility with the first implementation round;
# "Auth-Final" is now just called "Auth"
$fieldname =~ s/-Final$//;
if ($fieldname eq 'Conflicts') {
foreach my $elem (split(/, /, $2)) {
$profile{'Conflicts'}->{$elem} = 1;
}
} else {
$profile{$fieldname} = $2;
}
} else {
chomp;
s/^\s+//;
$profile{$fieldname} .= "\n$_" if ($_);
$profile{$fieldname} =~ s/^[\n\s]+//;
}
}
답변1
PAM 얼굴 인증 프로젝트는 종료되었으며 몇 년 동안 진행되어 왔기 때문에 이를 구성하려는 시도는 무의미합니다. 죄송합니다.