2 # - fix pdf gen or disable it: No fo2pdf processor installed, skip PDF generation
3 # NOTE: https://github.com/linux-pam/linux-pam/releases/download/v%{version}/Linux-PAM-%{version}-docs.tar.xz
4 # is not needed here: it contains documentation in target formats (HTML, PDF) built from sources included in main tarball
7 %bcond_without doc # documentation
8 %bcond_with prelude # Prelude IDS support (in libpam)
9 %bcond_without selinux # SELinux support
10 %bcond_without audit # Linux Auditing library support
11 %bcond_without static_libs # static libraries
12 %bcond_without systemd # logind support
14 %define pam_pld_version 1.1.2-1
15 Summary: Pluggable Authentication Modules: modular, incremental authentication
16 Summary(de.UTF-8): Einsteckbare Authentifizierungsmodule: modulare, inkrementäre Authentifizierung
17 Summary(es.UTF-8): Módulos de autentificación plugables (PAM)
18 Summary(fr.UTF-8): PAM : Pluggable Authentication Modules: modular, incremental authentication
19 Summary(pl.UTF-8): Modularny system uwierzytelniania
20 Summary(pt_BR.UTF-8): Módulos de autenticação plugáveis (PAM)
21 Summary(ru.UTF-8): Интструмент, обеспечивающий аутентификацию для приложений
22 Summary(tr.UTF-8): Modüler, artımsal doğrulama birimleri
23 Summary(uk.UTF-8): Інструмент, що забезпечує аутентифікацію для програм
28 # The library is BSD licensed with option to relicense as GPLv2+
29 # - this option is redundant as the BSD license allows that anyway.
30 # pam_timestamp, pam_loginuid, and pam_console modules are GPLv2+.
31 License: BSD and GPL v2+
33 Source0: https://github.com/linux-pam/linux-pam/releases/download/v%{version}/Linux-PAM-%{version}.tar.xz
34 # Source0-md5: a913bd5fbf9edeafaacf3eb1eb86fd83
35 Source2: ftp://ftp.pld-linux.org/software/pam/%{name}-pld-%{pam_pld_version}.tar.gz
36 # Source2-md5: f9ec6fcafcf1801bf318e60040244f2e
38 Source4: system-auth.pamd
39 Source5: config-util.pamd
40 Source6: %{name}_selinux_check.pamd
41 Source7: system-auth.5
42 Source8: config-util.5
43 Source9: %{name}.tmpfiles
44 Source10: postlogin.pamd
45 Patch0: %{name}-pld-modules.patch
46 Patch1: %{name}_console-lex-static.patch
47 Patch3: %{name}-mkhomedir-notfound.patch
48 Patch4: %{name}-db-gdbm.patch
49 Patch5: %{name}-exec-failok.patch
50 Patch6: pam_console_pam_tty.patch
51 URL: http://www.linux-pam.org/
52 %{?with_audit:BuildRequires: audit-libs-devel >= 1.6.9}
53 BuildRequires: autoconf >= 2.61
54 BuildRequires: automake
57 # gdbm due to db pulling libpthread
58 BuildRequires: gdbm-devel >= 1.8.3-7
59 BuildRequires: gettext-tools >= 0.18.3
60 BuildRequires: glibc-devel >= 6:2.10.1
61 BuildRequires: libnsl-devel
62 %{?with_prelude:BuildRequires: libprelude-devel >= 0.9.0}
63 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
64 BuildRequires: libtirpc-devel
65 BuildRequires: libtool >= 2:2
66 BuildRequires: libxcrypt-devel
67 %{?with_audit:BuildRequires: linux-libc-headers >= 7:2.6.23.1}
68 BuildRequires: pkgconfig
69 BuildRequires: rpmbuild(macros) >= 1.527
70 BuildRequires: tar >= 1:1.22
72 BuildRequires: zlib-devel
74 BuildRequires: docbook-dtd50-xml
75 BuildRequires: docbook-style-xsl >= 1.69.1
78 BuildRequires: libxml2-progs
79 BuildRequires: libxslt-progs
80 %{?with_systemd:BuildRequires: systemd-devel >= 1:254}
83 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
84 %{?with_audit:Requires: audit-libs >= 1.0.8}
86 Requires: crypt(blowfish)
87 Requires: glibc >= 6:2.5-0.5
88 %{?with_selinux:Requires: libselinux >= 2.1.9}
89 Requires: pam-pam_pwquality
90 %{?with_systemd:Requires: systemd-libs >= 1:254}
92 Suggests: pam-pam_userdb = %{epoch}:%{version}-%{release}
94 Obsoletes: pam-pam_cracklib < 1:1.5.3
95 Obsoletes: pam-pam_opie
96 Obsoletes: pam-pam_pwdb
97 Obsoletes: pam-pam_radius
98 Obsoletes: pam-pam_skey
99 Obsoletes: pam-pam_tally < 1:1.5.3
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
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.
233 Summary: PAM module - SELinux support
234 Summary(pl.UTF-8): Moduł PAM pozwalający na zmianę kontekstów SELinuksa
236 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
237 Requires: libselinux >= 2.1.9
239 %description pam_selinux
240 PAM module - SELinux support.
242 %description pam_selinux -l pl.UTF-8
243 Moduł PAM pozwalający na zmianę kontekstów SELinuksa.
246 Summary: PAM module - authenticate against GDBM database
247 Summary(pl.UTF-8): Moduł PAM do uwierzytelniania względem bazy danych GDBM
249 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
250 Requires: gdbm >= 1.8.3-7
252 %description pam_userdb
253 pam_userdb - PAM module to authenticate against GDBM database.
255 %description pam_userdb -l pl.UTF-8
256 pam_userdb - moduł PAM służący do uwierzytelniania względem bazy
260 %setup -q -a2 -n Linux-PAM-%{version}
276 %{__enable_disable static_libs static} \
279 --includedir=%{_includedir}/security \
280 %{!?with_audit:--disable-audit} \
282 %{!?with_doc:--disable-regenerate-docu} \
283 --enable-isadir=../../%{_lib}/security \
285 %{__enable_disable systemd logind} \
286 %{!?with_prelude:--disable-prelude} \
287 %{!?with_selinux:--disable-selinux} \
288 --with-systemdunitdir="%{systemdunitdir}"
290 # we must explicitely update-gmo as we patch a po file
291 %{__make} -C po update-gmo
293 DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
296 rm -rf $RPM_BUILD_ROOT
297 install -d $RPM_BUILD_ROOT{%{_libdir},/etc/pam.d,/usr/lib/pam.d,/var/{log,run/sepermit}} \
298 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
301 DESTDIR=$RPM_BUILD_ROOT \
302 pkgconfigdir=%{_pkgconfigdir}
305 install -p modules/pam_selinux/.libs/pam_selinux_check $RPM_BUILD_ROOT%{_sbindir}
306 cp -p modules/pam_selinux/pam_selinux_check.8 $RPM_BUILD_ROOT%{_mandir}/man8
307 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/pam_selinux_check
310 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
313 for r in modules/pam_*/README; do
314 cp -pf $r doc/txts/README.$(basename $(dirname $r))
316 %{__rm} doc/txts/README.pam_userdb
318 cp -pf doc/index.html doc/html/
320 # fix PAM/pam man page
321 echo ".so PAM.8" > $RPM_BUILD_ROOT%{_mandir}/man8/pam.8
323 :> $RPM_BUILD_ROOT/etc/security/opasswd
324 :> $RPM_BUILD_ROOT/etc/security/blacklist
326 %{?with_static_libs:%{__mv} $RPM_BUILD_ROOT/%{_lib}/lib*.a $RPM_BUILD_ROOT%{_libdir}}
327 %{__rm} $RPM_BUILD_ROOT/%{_lib}/lib*.la
329 cd $RPM_BUILD_ROOT/%{_lib}
330 ln -sf /%{_lib}/$(echo libpam.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam.so
331 ln -sf /%{_lib}/$(echo libpam_misc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam_misc.so
332 ln -sf /%{_lib}/$(echo libpamc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpamc.so
335 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/other
336 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/system-auth
337 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/config-util
338 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/postlogin
340 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_mandir}/man5/system-auth.5
341 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_mandir}/man5/config-util.5
343 # Make sure every module subdirectory gave us a module. Yes, this is hackish.
344 for dir in modules/pam_* ; do
345 %if %{without selinux}
346 [ ${dir} = "modules/pam_selinux" ] && continue
347 [ ${dir} = "modules/pam_sepermit" ] && continue
350 [ ${dir} = "modules/pam_tty_audit" ] && continue
352 if [ -d ${dir} ] ; then
353 if ! ls -1 $RPM_BUILD_ROOT/%{_lib}/security/`basename ${dir}`*.so ; then
354 echo ERROR `basename ${dir}` did not build a module.
360 for module in $RPM_BUILD_ROOT/%{_lib}/security/pam*.so ; do
361 # Check for module problems. Specifically, check that every module we just
362 # installed can actually be loaded by a minimal PAM-aware application.
363 if ! env LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_lib} \
364 ./dlopen.sh -ldl -lpam -L$RPM_BUILD_ROOT/%{_lib} ${module} ; then
365 echo ERROR module: ${module} cannot be loaded.
370 # useless - shut up check-files
371 %{__rm} $RPM_BUILD_ROOT/%{_lib}/security/*.la
372 %{?with_static_libs:%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/*.a}
373 %{__rm} $RPM_BUILD_ROOT/%{_lib}/lib*.so
374 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/Linux-PAM
379 cp -a doc/html rpm-doc/html
380 cp -a doc/sag/html rpm-doc/sag-html
381 cp -a doc/adg/html rpm-doc/adg-html
382 cp -a doc/mwg/html rpm-doc/mwg-html
385 %if %{without selinux}
386 rm -rf $RPM_BUILD_ROOT{/%{_lib}/security/pam_selinux.so,%{_sbindir}/pam_selinux_check,%{_mandir}/man8/pam_selinux*.8*}
392 rm -rf $RPM_BUILD_ROOT
394 %triggerpostun libs -- %{name}-libs < 0.99.7.1
395 for f in $(grep -l "\(pam_make\|pam_homedir\)" /etc/pam.d/*); do
397 *rpmorig|*rpmnew|*rpmsave|*~|*.orig)
401 cp -f "$f" "$f.rpmorig"
402 sed -i -e 's/pam_make\.so \(.*\)/pam_exec.so failok seteuid \/usr\/bin\/make -C \1/g' \
403 -e 's/pam_homedir\.so/pam_mkhomedir.so/g' "$f"
407 if [ -d /var/lock/console -a -d /var/run/console ]; then
408 cp -a /var/lock/console/* /var/run/console/ 2> /dev/null
409 rm -rf /var/lock/console
412 %triggerin -- cronie,vixie-cron,hc-cron,fcron,mcron
413 # restart crond if pam is upgraded
414 # (crond is linked with old libpam but tries to open modules linked with new libpam)
415 if [ "$1" != 1 ]; then
416 %service -q crond restart
420 %triggerpostun -- %{name} < 1:1.5.3-2
422 if grep -qs pam_tally /etc/pam.d/system-auth; then
423 %{__sed} -i -e '/pam_tally/d' /etc/pam.d/system-auth
425 if grep -qs pam_cracklib /etc/pam.d/system-auth; then
426 %{__sed} -i -e '/pam_cracklib/ s/pam_cracklib/pam_pwquality/' /etc/pam.d/system-auth
429 if grep -qs pam_pwquality /etc/pam.d/system-auth; then
430 %{__sed} -i -e '/pam_pwquality/ s/use_authtok//' /etc/pam.d/system-auth
434 if grep -qs change_uid /etc/pam.d/system-auth; then
435 %{__sed} -i -e '/session/ s/change_uid//' /etc/pam.d/system-auth
438 # We want it added for painless upgarde even if it mean log pollution for non-systemd
440 # If this module is not present on systemd enabled system then `systemctl restart sshd.service`
441 # will kill all sessions.
442 if ! grep -qs pam_systemd /etc/pam.d/system-auth; then
443 echo "-session optional pam_systemd.so" >>/etc/pam.d/system-auth
446 %post libs -p /sbin/ldconfig
447 %postun libs -p /sbin/ldconfig
449 %files -f Linux-PAM.lang
450 %defattr(644,root,root,755)
451 %doc AUTHORS CHANGELOG ChangeLog Copyright NEWS doc/txts/README*
453 %doc doc/specs/*.txt doc/sag/Linux-PAM_*.txt rpm-doc/{html,sag-html}
456 %dir /etc/security/console.apps
457 %dir /etc/security/console.perms.d
458 %dir /etc/security/limits.d
460 %dir /var/run/console
461 %{systemdtmpfilesdir}/%{name}.conf
462 %config(noreplace) %verify(not md5 mtime size) /etc/environment
463 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/other
464 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/system-auth
465 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/config-util
466 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/postlogin
467 %config(noreplace) %verify(not md5 mtime size) /etc/security/access.conf
468 %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist
469 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.handlers
470 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms
471 %config(noreplace) %verify(not md5 mtime size) /etc/security/faillock.conf
472 %config(noreplace) %verify(not md5 mtime size) /etc/security/group.conf
473 %config(noreplace) %verify(not md5 mtime size) /etc/security/limits.conf
474 %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.conf
475 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.init
476 %config(noreplace) %verify(not md5 mtime size) /etc/security/pam_env.conf
477 %config(noreplace) %verify(not md5 mtime size) /etc/security/pwhistory.conf
478 %config(noreplace) %verify(not md5 mtime size) /etc/security/time.conf
479 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram
480 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.en
481 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.de
482 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.dk
483 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.es
484 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.fi
485 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.it
486 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.ja
487 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.no
488 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.pl
489 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms.d/50-default.perms
490 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/opasswd
491 %attr(755,root,root) %{_bindir}/pam_pwgen
492 %attr(755,root,root) %{_sbindir}/faillock
493 %attr(755,root,root) %{_sbindir}/mkhomedir_helper
494 %attr(755,root,root) %{_sbindir}/pam_console_apply
495 %attr(755,root,root) %{_sbindir}/pam_namespace_helper
496 %attr(755,root,root) %{_sbindir}/pam_timestamp_check
497 %attr(755,root,root) %{_sbindir}/pwgen_trigram
498 %attr(755,root,root) %{_sbindir}/pwhistory_helper
499 %attr(4755,root,root) %{_sbindir}/unix_chkpwd
500 %attr(4755,root,root) %{_sbindir}/unix_update
501 %{systemdunitdir}/pam_namespace.service
502 %{_mandir}/man5/access.conf.5*
503 %{_mandir}/man5/config-util.5*
504 %{_mandir}/man5/console.apps.5*
505 %{_mandir}/man5/console.handlers.5*
506 %{_mandir}/man5/console.perms.5*
507 %{_mandir}/man5/environment.5*
508 %{_mandir}/man5/faillock.conf.5*
509 %{_mandir}/man5/group.conf.5*
510 %{_mandir}/man5/limits.conf.5*
511 %{_mandir}/man5/namespace.conf.5*
512 %{_mandir}/man5/pam.conf.5*
513 %{_mandir}/man5/pam.d.5*
514 %{_mandir}/man5/pam_env.conf.5*
515 %{_mandir}/man5/pwhistory.conf.5*
516 %{_mandir}/man5/system-auth.5*
517 %{_mandir}/man5/time.conf.5*
518 %{_mandir}/man8/PAM.8*
519 %{_mandir}/man8/faillock.8*
520 %{_mandir}/man8/mkhomedir_helper.8*
521 %{_mandir}/man8/pam.8*
522 %{_mandir}/man8/pam_*.8*
523 %{_mandir}/man8/pwhistory_helper.8*
524 %{_mandir}/man8/unix_chkpwd.8*
525 %{_mandir}/man8/unix_update.8*
527 %exclude %{_mandir}/man8/pam_selinux*.8*
528 %exclude %{_mandir}/man8/pam_sepermit.8*
530 %exclude %{_mandir}/man8/pam_userdb.8*
533 %attr(755,root,root) /%{_lib}/security/pam_access.so
534 %attr(755,root,root) /%{_lib}/security/pam_console.so
535 %attr(755,root,root) /%{_lib}/security/pam_debug.so
536 %attr(755,root,root) /%{_lib}/security/pam_deny.so
537 %attr(755,root,root) /%{_lib}/security/pam_echo.so
538 %attr(755,root,root) /%{_lib}/security/pam_env.so
539 %attr(755,root,root) /%{_lib}/security/pam_exec.so
540 %attr(755,root,root) /%{_lib}/security/pam_faildelay.so
541 %attr(755,root,root) /%{_lib}/security/pam_faillock.so
542 %attr(755,root,root) /%{_lib}/security/pam_filter.so
543 %attr(755,root,root) /%{_lib}/security/pam_filter/upperLOWER
544 %attr(755,root,root) /%{_lib}/security/pam_ftp.so
545 %attr(755,root,root) /%{_lib}/security/pam_group.so
546 %attr(755,root,root) /%{_lib}/security/pam_issue.so
547 %attr(755,root,root) /%{_lib}/security/pam_keyinit.so
548 %attr(755,root,root) /%{_lib}/security/pam_lastlog.so
549 %attr(755,root,root) /%{_lib}/security/pam_limits.so
550 %attr(755,root,root) /%{_lib}/security/pam_listfile.so
551 %attr(755,root,root) /%{_lib}/security/pam_localuser.so
552 %attr(755,root,root) /%{_lib}/security/pam_loginuid.so
553 %attr(755,root,root) /%{_lib}/security/pam_mail.so
554 %attr(755,root,root) /%{_lib}/security/pam_mkhomedir.so
555 %attr(755,root,root) /%{_lib}/security/pam_motd.so
556 %attr(755,root,root) /%{_lib}/security/pam_namespace.so
557 %attr(755,root,root) /%{_lib}/security/pam_nologin.so
558 %attr(755,root,root) /%{_lib}/security/pam_permit.so
559 %attr(755,root,root) /%{_lib}/security/pam_pwexport.so
560 %attr(755,root,root) /%{_lib}/security/pam_pwgen.so
561 %attr(755,root,root) /%{_lib}/security/pam_pwhistory.so
562 %attr(755,root,root) /%{_lib}/security/pam_rhosts.so
563 %attr(755,root,root) /%{_lib}/security/pam_rootok.so
564 %attr(755,root,root) /%{_lib}/security/pam_rps.so
565 %attr(755,root,root) /%{_lib}/security/pam_securetty.so
566 %attr(755,root,root) /%{_lib}/security/pam_setquota.so
567 %attr(755,root,root) /%{_lib}/security/pam_shells.so
568 %attr(755,root,root) /%{_lib}/security/pam_stress.so
569 %attr(755,root,root) /%{_lib}/security/pam_succeed_if.so
570 %attr(755,root,root) /%{_lib}/security/pam_time.so
571 %attr(755,root,root) /%{_lib}/security/pam_timestamp.so
572 %{?with_audit:%attr(755,root,root) /%{_lib}/security/pam_tty_audit.so}
573 %attr(755,root,root) /%{_lib}/security/pam_umask.so
574 %attr(755,root,root) /%{_lib}/security/pam_unix.so
575 %attr(755,root,root) /%{_lib}/security/pam_usertype.so
576 %attr(755,root,root) /%{_lib}/security/pam_warn.so
577 %attr(755,root,root) /%{_lib}/security/pam_wheel.so
578 %attr(755,root,root) /%{_lib}/security/pam_xauth.so
581 %defattr(644,root,root,755)
582 %dir /%{_lib}/security/pam_filter
583 %attr(755,root,root) /%{_lib}/libpam.so.*.*.*
584 %attr(755,root,root) %ghost /%{_lib}/libpam.so.0
585 %attr(755,root,root) /%{_lib}/libpam_misc.so.*.*.*
586 %attr(755,root,root) %ghost /%{_lib}/libpam_misc.so.0
587 %attr(755,root,root) /%{_lib}/libpamc.so.*.*.*
588 %attr(755,root,root) %ghost /%{_lib}/libpamc.so.0
591 %defattr(644,root,root,755)
593 %doc doc/{adg,mwg}/Linux-PAM_*.txt rpm-doc/{adg,mwg}-html
595 %attr(755,root,root) %{_libdir}/libpam.so
596 %attr(755,root,root) %{_libdir}/libpam_misc.so
597 %attr(755,root,root) %{_libdir}/libpamc.so
598 %{_pkgconfigdir}/pam.pc
599 %{_pkgconfigdir}/pam_misc.pc
600 %{_pkgconfigdir}/pamc.pc
601 %{_includedir}/security/_pam_*.h
602 %{_includedir}/security/pam*.h
603 %{_mandir}/man3/misc_conv.3*
604 %{_mandir}/man3/pam*.3*
606 %if %{with static_libs}
608 %defattr(644,root,root,755)
611 %{_libdir}/libpam_misc.a
616 %defattr(644,root,root,755)
617 %attr(755,root,root) /%{_lib}/security/pam_selinux.so
618 %attr(755,root,root) /%{_lib}/security/pam_sepermit.so
619 %attr(755,root,root) %{_sbindir}/pam_selinux_check
620 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/pam_selinux_check
621 %config(noreplace) %verify(not md5 mtime size) /etc/security/sepermit.conf
622 %{_mandir}/man5/sepermit.conf.5*
623 %{_mandir}/man8/pam_selinux*.8*
624 %{_mandir}/man8/pam_sepermit.8*
625 %dir /var/run/sepermit
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*