2 # - check and package docs: https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-1.1.8-docs.tar.bz2
3 # - fix pdf gen or disable it: No fo2pdf processor installed, skip PDF generation
4 # - replace pam_cracklib.so with pam_pwquality.so (backwards compatible with its options), comes with pam-pam_pwquality package
5 # - pam_tally, pam_tally2 is deprecated in favor of pam_faillock
6 # use patch for now: pkgs.fedoraproject.org/pam/pam-1.2.1-faillock.patch
7 # https://www.redhat.com/archives/pam-list/2017-June/msg00002.html
10 %bcond_without doc # don't build documentation
11 %bcond_with prelude # build with Prelude IDS support (in libpam)
12 %bcond_without selinux # build without SELinux support
13 %bcond_without audit # build with Linux Auditing library support
15 %define pam_pld_version 1.1.2-1
16 Summary: Pluggable Authentication Modules: modular, incremental authentication
17 Summary(de.UTF-8): Einsteckbare Authentifizierungsmodule: modulare, inkrementäre Authentifizierung
18 Summary(es.UTF-8): Módulos de autentificación plugables (PAM)
19 Summary(fr.UTF-8): PAM : Pluggable Authentication Modules: modular, incremental authentication
20 Summary(pl.UTF-8): Modularny system uwierzytelniania
21 Summary(pt_BR.UTF-8): Módulos de autenticação plugáveis (PAM)
22 Summary(ru.UTF-8): Интструмент, обеспечивающий аутентификацию для приложений
23 Summary(tr.UTF-8): Modüler, artımsal doğrulama birimleri
24 Summary(uk.UTF-8): Інструмент, що забезпечує аутентифікацію для програм
29 # The library is BSD licensed with option to relicense as GPLv2+
30 # - this option is redundant as the BSD license allows that anyway.
31 # pam_timestamp, pam_loginuid, and pam_console modules are GPLv2+.
32 License: BSD and GPL v2+
34 Source0: http://www.linux-pam.org/library/Linux-PAM-%{version}.tar.bz2
35 # Source0-md5: da4b2289b7cfb19583d54e9eaaef1c3a
36 Source1: http://www.linux-pam.org/library/Linux-PAM-%{version}-docs.tar.bz2
37 # Source1-md5: 30fa7fa696a5b3b8d2c3c41d9373a8f3
38 Source2: ftp://ftp.pld-linux.org/software/pam/%{name}-pld-%{pam_pld_version}.tar.gz
39 # Source2-md5: f9ec6fcafcf1801bf318e60040244f2e
41 Source4: system-auth.pamd
42 Source5: config-util.pamd
43 Source6: %{name}_selinux_check.pamd
44 Source7: system-auth.5
45 Source8: config-util.5
46 Source9: %{name}.tmpfiles
47 Source10: postlogin.pamd
48 Patch0: %{name}-pld-modules.patch
49 Patch1: %{name}_console-lex-static.patch
50 Patch2: %{name}-tally-fail-close.patch
51 Patch3: %{name}-mkhomedir-notfound.patch
52 Patch4: %{name}-db-gdbm.patch
53 Patch5: %{name}-exec-failok.patch
54 Patch6: update-motd.patch
55 URL: http://www.linux-pam.org/
56 %{?with_audit:BuildRequires: audit-libs-devel >= 1.6.9}
57 BuildRequires: autoconf >= 2.61
58 BuildRequires: automake
60 BuildRequires: cracklib-devel >= 2.8.3
62 # gdbm due to db pulling libpthread
63 BuildRequires: gdbm-devel >= 1.8.3-7
64 BuildRequires: gettext-tools >= 0.18.3
65 BuildRequires: glibc-devel >= 6:2.10.1
66 %{?with_prelude:BuildRequires: libprelude-devel >= 0.9.0}
67 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
68 BuildRequires: libtirpc-devel
69 BuildRequires: libtool >= 2:2
70 BuildRequires: libxcrypt-devel
71 %{?with_audit:BuildRequires: linux-libc-headers >= 2.6.23.1}
72 BuildRequires: pkgconfig
73 BuildRequires: zlib-devel
75 BuildRequires: docbook-dtd412-xml
76 BuildRequires: docbook-dtd43-xml
77 BuildRequires: docbook-dtd44-xml
78 BuildRequires: docbook-style-xsl >= 1.69.1
81 BuildRequires: libxml2-progs
82 BuildRequires: libxslt-progs
85 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
86 %{?with_audit:Requires: audit-libs >= 1.0.8}
88 Requires: crypt(blowfish)
89 Requires: glibc >= 6:2.5-0.5
90 %{?with_selinux:Requires: libselinux >= 2.1.9}
91 Requires: pam-pam_cracklib = %{epoch}:%{version}-%{release}
93 Suggests: pam-pam_pwquality
94 Suggests: pam-pam_userdb = %{epoch}:%{version}-%{release}
96 Obsoletes: pam-pam_opie
97 Obsoletes: pam-pam_pwdb
98 Obsoletes: pam-pam_radius
99 Obsoletes: pam-pam_skey
100 Obsoletes: pam-pam_tcpd
103 Conflicts: dev < 3.4-4
104 Conflicts: pam < 0:0.80.1-2
105 Conflicts: udev < 1:138-5
106 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
108 %define _sbindir /sbin
111 PAM (Pluggable Authentication Modules) is a powerful, flexible,
112 extensible authentication system which allows the system administrator
113 to configure authentication services individually for every
114 pam-compliant application without recompiling any of the applications.
116 %description -l de.UTF-8
117 PAM (Pluggable Authentication Modules) ist ein leistungsfähiges,
118 flexibles und erweiterbares Authentifizierungssystem, mit dem der
119 Systemverwalter Authentifizierungs-Dienste individuell für jede
120 pam-kompatible Anwendung konfigurieren kann, ohne diese neu
121 kompilieren zu müssen.
123 %description -l es.UTF-8
124 PAM (Módulos de Autenticación Plugables) es un potente, flexible y
125 extensible sistema de autentificación, que permite al administrador
126 del sistema configurar servicios de autentificación individualmente
127 para cada aplicación pam compatible, sin la necesidad de recompilar
128 cualquier una de las aplicaciones.
130 %description -l fr.UTF-8
131 PAM (Pluggable Authentication Modules) est un systéme
132 d'authentification puissant, souple et extensible permettant à
133 l'administrateur système de configurer les individuellement les
134 services d'authentification pour chaque application conforme à PAM,
135 sans recompiler aucune application.
137 %description -l pl.UTF-8
138 PAM (Pluggable Authentication Modules) jest silnym i łatwo
139 dostosowywalnym do potrzeb systemem uwierzytelniania, który umożliwia
140 administratorowi indywidualne konfigurowanie poszczególnych usług,
141 które są dostosowane i skonsolidowane z bibliotekami PAM, bez
142 późniejszej ich rekompilacji w momencie zmiany sposobu
143 uwierzytelniania tychże usług.
145 %description -l pt_BR.UTF-8
146 PAM (Módulos de Autenticação Plugáveis) é um poderoso, flexível e
147 extensível sistema de autenticação, que permite o administrador do
148 sistema configurar serviços de autenticação individualmente para cada
149 aplicação pam compatível, sem necessidade de recompilar qualquer uma
152 %description -l uk.UTF-8
153 PAM (Pluggable Authentication Modules) - це потужна, гнучка, здатна до
154 розширення система аутентикації, яка дозволяє системному
155 адміністратору налагоджувати севіси авторизації доступу (аутентикації)
156 індивідуально для кожної pam-сумісної програми без необхідності
157 перекомпіляції самої програми. Це базовий механізм аутентикації в PLD
160 %description -l tr.UTF-8
161 PAM (Pluggable Authentication Modules) sistem yöneticilerinin
162 uygulamalardan herhangi birini yeniden derlemeksizin bütün PAM uyumlu
163 uygulamalar için doğrulama hizmetlerini ayarlamalarına yardımcı olan,
164 güclü, esnek ve kapsamlı bir doğrulama sistemidir.
166 %description -l ru.UTF-8
167 PAM (Pluggable Authentication Modules) - это мощная, гибкая,
168 расширяемая система аутентикации, позволяющая системному
169 администратору конфигурировать сервисы авторизации доступа
170 (аутентикации) индивидуально для каждой pam-совместимой программы без
171 необходимости перекомпилляции самой программы. Это базовый механизм
172 аутентикации в PLD Linux.
175 Summary: PAM libraries
176 Summary(pl.UTF-8): Moduły PAM
178 Requires(triggerpostun): sed >= 4.0
183 %description libs -l pl.UTF-8
187 Summary: PAM header files
188 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja programisty do PAM
189 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento com PAM
190 Summary(ru.UTF-8): Библиотеки разработчика для PAM
191 Summary(uk.UTF-8): Бібліотеки програміста для PAM
192 Group: Development/Libraries
193 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
194 %{?with_audit:Requires: audit-libs-devel >= 1.0.8}
195 Requires: filesystem >= 3.0-11
198 Header files for developing PAM based applications.
200 %description devel -l pl.UTF-8
201 Pliki nagłówkowe i dokumentacja programisty do PAM.
203 %description devel -l pt_BR.UTF-8
204 Bibliotecas e arquivos de inclusão para desenvolvimento com PAM
206 %description devel -l ru.UTF-8
207 Этот пакет содержит хедеры и библиотеки разработчика для PAM.
209 %description devel -l uk.UTF-8
210 Цей пакет містить хедери та бібліотеки програміста для PAM.
213 Summary: PAM static libraries
214 Summary(pl.UTF-8): Biblioteki statyczne PAM
215 Summary(ru.UTF-8): Статические библиотеки разработчика для PAM
216 Summary(uk.UTF-8): Статичні бібліотеки програміста для PAM
217 Group: Development/Libraries
218 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
221 PAM static libraries.
223 %description static -l pl.UTF-8
224 Biblioteki statyczne PAM.
226 %description static -l ru.UTF-8
227 Этот пакет содержит статические библиотеки разработчика для PAM.
229 %description static -l uk.UTF-8
230 Цей пакет містить статичні бібліотеки програміста для PAM.
232 %package pam_cracklib
233 Summary: PAM module to check the password against dictionary words
234 Summary(pl.UTF-8): Moduł PAM do sprawdzania haseł względem słów ze słownika
236 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
237 Requires: cracklib >= 2.8.3
238 Requires: cracklib-dicts >= 2.8.3
240 %description pam_cracklib
241 PAM module to check the password against dictionary words.
243 %description pam_cracklib -l pl.UTF-8
244 Moduł PAM do sprawdzania haseł względem słów ze słownika.
247 Summary: PAM module - SELinux support
248 Summary(pl.UTF-8): Moduł PAM pozwalający na zmianę kontekstów SELinuksa
250 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
251 Requires: libselinux >= 2.1.9
253 %description pam_selinux
254 PAM module - SELinux support.
256 %description pam_selinux -l pl.UTF-8
257 Moduł PAM pozwalający na zmianę kontekstów SELinuksa.
260 Summary: PAM module - authenticate against GDBM database
261 Summary(pl.UTF-8): Moduł PAM do uwierzytelniania względem bazy danych GDBM
263 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
264 Requires: gdbm >= 1.8.3-7
266 %description pam_userdb
267 pam_userdb - PAM module to authenticate against GDBM database.
269 %description pam_userdb -l pl.UTF-8
270 pam_userdb - moduł PAM służący do uwierzytelniania względem bazy
274 %setup -q -a2 -n Linux-PAM-%{version}
294 --includedir=%{_includedir}/security \
295 --enable-isadir=../../%{_lib}/security \
297 %{!?with_selinux:--disable-selinux} \
298 %{!?with_prelude:--disable-prelude} \
299 %{!?with_audit:--disable-audit}
301 # we must explicitely update-gmo as we patch a po file
302 %{__make} -C po update-gmo
304 DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
307 rm -rf $RPM_BUILD_ROOT
308 install -d $RPM_BUILD_ROOT{%{_libdir},/etc/pam.d,/var/{log,run/sepermit}} \
309 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
312 DESTDIR=$RPM_BUILD_ROOT
315 install -p modules/pam_selinux/.libs/pam_selinux_check $RPM_BUILD_ROOT%{_sbindir}
316 cp -p modules/pam_selinux/pam_selinux_check.8 $RPM_BUILD_ROOT%{_mandir}/man8
317 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/pam_selinux_check
320 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
323 for r in modules/pam_*/README; do
324 cp -pf $r doc/txts/README.$(basename $(dirname $r))
326 %{__rm} doc/txts/README.pam_userdb
327 %{__rm} doc/txts/README.pam_cracklib
329 cp -pf doc/index.html doc/html/
331 # fix PAM/pam man page
332 echo ".so PAM.8" > $RPM_BUILD_ROOT%{_mandir}/man8/pam.8
334 :> $RPM_BUILD_ROOT/etc/security/opasswd
335 :> $RPM_BUILD_ROOT/etc/security/blacklist
337 :> $RPM_BUILD_ROOT/var/log/tallylog
339 %{__mv} $RPM_BUILD_ROOT/%{_lib}/lib*.a $RPM_BUILD_ROOT%{_libdir}
341 cd $RPM_BUILD_ROOT/%{_lib}
342 for f in lib*.la ; do
343 %{__sed} -e 's|/%{_lib}/libpam|%{_libdir}/libpam|g' \
344 -e "s|libdir='/%{_lib}|libdir='%{_libdir}|g" $f > $RPM_BUILD_ROOT%{_libdir}/$f
347 ln -sf /%{_lib}/$(echo libpam.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam.so
348 ln -sf /%{_lib}/$(echo libpam_misc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam_misc.so
349 ln -sf /%{_lib}/$(echo libpamc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpamc.so
352 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/other
353 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/system-auth
354 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/config-util
355 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/postlogin
357 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_mandir}/man5/system-auth.5
358 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_mandir}/man5/config-util.5
360 # Make sure every module subdirectory gave us a module. Yes, this is hackish.
361 for dir in modules/pam_* ; do
362 %if %{without selinux}
363 [ ${dir} = "modules/pam_selinux" ] && continue
364 [ ${dir} = "modules/pam_sepermit" ] && continue
367 [ ${dir} = "modules/pam_tty_audit" ] && continue
369 if [ -d ${dir} ] ; then
370 if ! ls -1 $RPM_BUILD_ROOT/%{_lib}/security/`basename ${dir}`*.so ; then
371 echo ERROR `basename ${dir}` did not build a module.
377 for module in $RPM_BUILD_ROOT/%{_lib}/security/pam*.so ; do
378 # Check for module problems. Specifically, check that every module we just
379 # installed can actually be loaded by a minimal PAM-aware application.
380 if ! env LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_lib} \
381 ./dlopen.sh -ldl -lpam -L$RPM_BUILD_ROOT/%{_lib} ${module} ; then
382 echo ERROR module: ${module} cannot be loaded.
387 # useless - shut up check-files
388 %{__rm} $RPM_BUILD_ROOT/%{_lib}/security/*.{la,a}
389 %{__rm} $RPM_BUILD_ROOT/%{_lib}/lib*.so
390 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/Linux-PAM
392 %if %{without selinux}
393 rm -rf $RPM_BUILD_ROOT{/%{_lib}/security/pam_selinux.so,%{_sbindir}/pam_selinux_check,%{_mandir}/man8/pam_selinux*.8*}
399 rm -rf $RPM_BUILD_ROOT
401 %triggerpostun libs -- %{name}-libs < 0.99.7.1
402 for f in $(grep -l "\(pam_make\|pam_homedir\)" /etc/pam.d/*); do
404 *rpmorig|*rpmnew|*rpmsave|*~|*.orig)
408 cp -f "$f" "$f.rpmorig"
409 sed -i -e 's/pam_make\.so \(.*\)/pam_exec.so failok seteuid \/usr\/bin\/make -C \1/g' \
410 -e 's/pam_homedir\.so/pam_mkhomedir.so/g' "$f"
414 if [ -d /var/lock/console -a -d /var/run/console ]; then
415 cp -a /var/lock/console/* /var/run/console/ 2> /dev/null
416 rm -rf /var/lock/console
419 %triggerin -- cronie,vixie-cron,hc-cron,fcron,mcron
420 # restart crond if pam is upgraded
421 # (crond is linked with old libpam but tries to open modules linked with new libpam)
422 if [ "$1" != 1 ]; then
423 %service -q crond restart
427 %triggerpostun -- %{name} < 1:1.1.5-8
429 if grep -qs change_uid /etc/pam.d/system-auth; then
430 %{__sed} -i -e '/session/ s/change_uid//' /etc/pam.d/system-auth
433 # We want it added for painless upgarde even if it mean log pollution for non-systemd
435 # If this module is not present on systemd enabled system then `systemctl restart sshd.service`
436 # will kill all sessions.
437 if ! grep -qs pam_systemd /etc/pam.d/system-auth; then
438 echo "-session optional pam_systemd.so" >>/etc/pam.d/system-auth
442 fh, error = io.open("/var/log/tallylog")
446 fh = io.open("/var/log/tallylog", "w+")
448 posix.chmod("/var/log/tallylog", "rw-------")
451 %post libs -p /sbin/ldconfig
452 %postun libs -p /sbin/ldconfig
454 %files -f Linux-PAM.lang
455 %defattr(644,root,root,755)
456 %doc AUTHORS CHANGELOG ChangeLog Copyright NEWS doc/txts/README*
458 %doc doc/specs/*.txt doc/sag/Linux-PAM_*.txt doc/{sag,}/html
461 %dir /etc/security/console.apps
462 %dir /etc/security/console.perms.d
463 %dir /var/run/console
464 %{systemdtmpfilesdir}/%{name}.conf
465 %config(noreplace) %verify(not md5 mtime size) /etc/environment
466 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/other
467 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/system-auth
468 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/config-util
469 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/postlogin
470 %config(noreplace) %verify(not md5 mtime size) /etc/security/access.conf
471 %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist
472 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.handlers
473 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms
474 %config(noreplace) %verify(not md5 mtime size) /etc/security/group.conf
475 %config(noreplace) %verify(not md5 mtime size) /etc/security/limits.conf
476 %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.conf
477 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.init
478 %config(noreplace) %verify(not md5 mtime size) /etc/security/pam_env.conf
479 %config(noreplace) %verify(not md5 mtime size) /etc/security/time.conf
480 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram
481 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.en
482 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.de
483 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.dk
484 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.es
485 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.fi
486 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.it
487 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.ja
488 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.no
489 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.pl
490 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms.d/50-default.perms
491 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/opasswd
492 %attr(755,root,root) %{_bindir}/pam_pwgen
493 %attr(755,root,root) %{_sbindir}/mkhomedir_helper
494 %attr(755,root,root) %{_sbindir}/pam_console_apply
495 %attr(755,root,root) %{_sbindir}/pam_tally
496 %attr(755,root,root) %{_sbindir}/pam_tally2
497 %attr(755,root,root) %{_sbindir}/pam_timestamp_check
498 %attr(755,root,root) %{_sbindir}/pwgen_trigram
499 %attr(4755,root,root) %{_sbindir}/unix_chkpwd
500 %attr(4755,root,root) %{_sbindir}/unix_update
501 %{_mandir}/man5/access.conf.5*
502 %{_mandir}/man5/config-util.5*
503 %{_mandir}/man5/console.apps.5*
504 %{_mandir}/man5/console.handlers.5*
505 %{_mandir}/man5/console.perms.5*
506 %{_mandir}/man5/environment.5*
507 %{_mandir}/man5/group.conf.5*
508 %{_mandir}/man5/limits.conf.5*
509 %{_mandir}/man5/namespace.conf.5*
510 %{_mandir}/man5/pam.conf.5*
511 %{_mandir}/man5/pam.d.5*
512 %{_mandir}/man5/pam_env.conf.5*
513 %{_mandir}/man5/system-auth.5*
514 %{_mandir}/man5/time.conf.5*
515 %{_mandir}/man8/PAM.8*
516 %{_mandir}/man8/mkhomedir_helper.8*
517 %{_mandir}/man8/pam.8*
518 %{_mandir}/man8/pam_*.8*
519 %{_mandir}/man8/unix_chkpwd.8*
520 %{_mandir}/man8/unix_update.8*
522 %exclude %{_mandir}/man8/pam_selinux*.8*
523 %exclude %{_mandir}/man8/pam_sepermit.8*
525 %exclude %{_mandir}/man8/pam_cracklib.8*
526 %exclude %{_mandir}/man8/pam_userdb.8*
527 %ghost %verify(not md5 mtime size) /var/log/tallylog
530 %attr(755,root,root) /%{_lib}/security/pam_access.so
531 %attr(755,root,root) /%{_lib}/security/pam_console.so
532 %attr(755,root,root) /%{_lib}/security/pam_debug.so
533 %attr(755,root,root) /%{_lib}/security/pam_deny.so
534 %attr(755,root,root) /%{_lib}/security/pam_echo.so
535 %attr(755,root,root) /%{_lib}/security/pam_env.so
536 %attr(755,root,root) /%{_lib}/security/pam_exec.so
537 %attr(755,root,root) /%{_lib}/security/pam_faildelay.so
538 %attr(755,root,root) /%{_lib}/security/pam_filter.so
539 %attr(755,root,root) /%{_lib}/security/pam_filter/upperLOWER
540 %attr(755,root,root) /%{_lib}/security/pam_ftp.so
541 %attr(755,root,root) /%{_lib}/security/pam_group.so
542 %attr(755,root,root) /%{_lib}/security/pam_issue.so
543 %attr(755,root,root) /%{_lib}/security/pam_keyinit.so
544 %attr(755,root,root) /%{_lib}/security/pam_lastlog.so
545 %attr(755,root,root) /%{_lib}/security/pam_limits.so
546 %attr(755,root,root) /%{_lib}/security/pam_listfile.so
547 %attr(755,root,root) /%{_lib}/security/pam_localuser.so
548 %attr(755,root,root) /%{_lib}/security/pam_loginuid.so
549 %attr(755,root,root) /%{_lib}/security/pam_mail.so
550 %attr(755,root,root) /%{_lib}/security/pam_mkhomedir.so
551 %attr(755,root,root) /%{_lib}/security/pam_motd.so
552 %attr(755,root,root) /%{_lib}/security/pam_namespace.so
553 %attr(755,root,root) /%{_lib}/security/pam_nologin.so
554 %attr(755,root,root) /%{_lib}/security/pam_permit.so
555 %attr(755,root,root) /%{_lib}/security/pam_pwexport.so
556 %attr(755,root,root) /%{_lib}/security/pam_pwgen.so
557 %attr(755,root,root) /%{_lib}/security/pam_pwhistory.so
558 %attr(755,root,root) /%{_lib}/security/pam_rhosts.so
559 %attr(755,root,root) /%{_lib}/security/pam_rootok.so
560 %attr(755,root,root) /%{_lib}/security/pam_rps.so
561 %attr(755,root,root) /%{_lib}/security/pam_securetty.so
562 %attr(755,root,root) /%{_lib}/security/pam_shells.so
563 %attr(755,root,root) /%{_lib}/security/pam_stress.so
564 %attr(755,root,root) /%{_lib}/security/pam_succeed_if.so
565 %attr(755,root,root) /%{_lib}/security/pam_tally2.so
566 %attr(755,root,root) /%{_lib}/security/pam_tally.so
567 %attr(755,root,root) /%{_lib}/security/pam_time.so
568 %attr(755,root,root) /%{_lib}/security/pam_timestamp.so
569 %{?with_audit:%attr(755,root,root) /%{_lib}/security/pam_tty_audit.so}
570 %attr(755,root,root) /%{_lib}/security/pam_umask.so
571 %attr(755,root,root) /%{_lib}/security/pam_unix.so
572 %attr(755,root,root) /%{_lib}/security/pam_warn.so
573 %attr(755,root,root) /%{_lib}/security/pam_wheel.so
574 %attr(755,root,root) /%{_lib}/security/pam_xauth.so
577 %defattr(644,root,root,755)
578 %dir /%{_lib}/security/pam_filter
579 %attr(755,root,root) /%{_lib}/libpam.so.*.*.*
580 %attr(755,root,root) %ghost /%{_lib}/libpam.so.0
581 %attr(755,root,root) /%{_lib}/libpam_misc.so.*.*.*
582 %attr(755,root,root) %ghost /%{_lib}/libpam_misc.so.0
583 %attr(755,root,root) /%{_lib}/libpamc.so.*.*.*
584 %attr(755,root,root) %ghost /%{_lib}/libpamc.so.0
587 %defattr(644,root,root,755)
589 %doc doc/{adg,mwg}/Linux-PAM_*.txt doc/{adg,mwg,}/html
591 %attr(755,root,root) %{_libdir}/libpam.so
592 %attr(755,root,root) %{_libdir}/libpam_misc.so
593 %attr(755,root,root) %{_libdir}/libpamc.so
595 %{_libdir}/libpam_misc.la
596 %{_libdir}/libpamc.la
597 %{_includedir}/security/_pam_*.h
598 %{_includedir}/security/pam*.h
599 %{_mandir}/man3/misc_conv.3*
600 %{_mandir}/man3/pam*.3*
603 %defattr(644,root,root,755)
606 %{_libdir}/libpam_misc.a
610 %defattr(644,root,root,755)
611 %attr(755,root,root) /%{_lib}/security/pam_selinux.so
612 %attr(755,root,root) /%{_lib}/security/pam_sepermit.so
613 %attr(755,root,root) %{_sbindir}/pam_selinux_check
614 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/pam_selinux_check
615 %config(noreplace) %verify(not md5 mtime size) /etc/security/sepermit.conf
616 %{_mandir}/man5/sepermit.conf.5*
617 %{_mandir}/man8/pam_selinux*.8*
618 %{_mandir}/man8/pam_sepermit.8*
619 %dir /var/run/sepermit
623 %defattr(644,root,root,755)
624 %doc modules/pam_cracklib/README
625 %attr(755,root,root) /%{_lib}/security/pam_cracklib.so
626 %{_mandir}/man8/pam_cracklib.8*
629 %defattr(644,root,root,755)
630 %doc modules/pam_userdb/README
631 %attr(755,root,root) /%{_lib}/security/pam_userdb.so
632 %{_mandir}/man8/pam_userdb.8*