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 econf # libeconf handled configuration
9 %bcond_with prelude # Prelude IDS support (in libpam)
10 %bcond_without selinux # SELinux support
11 %bcond_without audit # Linux Auditing library support
12 %bcond_without static_libs # static libraries
13 %bcond_without systemd # logind 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: https://github.com/linux-pam/linux-pam/releases/download/v%{version}/Linux-PAM-%{version}.tar.xz
35 # Source0-md5: 41a10af5fc35a7be472ae9864338e64a
36 Source2: ftp://ftp.pld-linux.org/software/pam/%{name}-pld-%{pam_pld_version}.tar.gz
37 # Source2-md5: f9ec6fcafcf1801bf318e60040244f2e
39 Source4: system-auth.pamd
40 Source5: config-util.pamd
41 Source6: %{name}_selinux_check.pamd
42 Source7: system-auth.5
43 Source8: config-util.5
44 Source9: %{name}.tmpfiles
45 Source10: postlogin.pamd
46 Patch0: %{name}-pld-modules.patch
47 Patch1: %{name}_console-lex-static.patch
48 Patch3: %{name}-mkhomedir-notfound.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 %{?with_econf:BuildRequires: libeconf-devel >= 0.5.0}
62 BuildRequires: libnsl-devel
63 %{?with_prelude:BuildRequires: libprelude-devel >= 0.9.0}
64 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
65 BuildRequires: libtirpc-devel
66 BuildRequires: libtool >= 2:2
67 BuildRequires: libxcrypt-devel
68 %{?with_audit:BuildRequires: linux-libc-headers >= 7:2.6.23.1}
69 BuildRequires: pkgconfig
70 BuildRequires: rpmbuild(macros) >= 1.527
71 %{?with_systemd:BuildRequires: systemd-devel >= 1:254}
72 BuildRequires: tar >= 1:1.22
74 BuildRequires: zlib-devel
76 BuildRequires: docbook-dtd50-xml
77 BuildRequires: docbook-style-xsl >= 1.69.1
80 BuildRequires: libxml2-progs
81 BuildRequires: libxslt-progs
84 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
85 %{?with_audit:Requires: audit-libs >= 1.0.8}
87 Requires: crypt(blowfish)
88 Requires: glibc >= 6:2.5-0.5
89 %{?with_selinux:Requires: libselinux >= 2.1.9}
90 Requires: pam-pam_pwquality
91 %{?with_systemd:Requires: systemd-libs >= 1:254}
93 Suggests: pam-pam_userdb = %{epoch}:%{version}-%{release}
95 Obsoletes: pam-pam_cap < 0.99
96 Obsoletes: pam-pam_cracklib < 1:1.5.3
97 Obsoletes: pam-pam_opie < 0.99
98 Obsoletes: pam-pam_pwdb < 0.99
99 Obsoletes: pam-pam_radius < 0.99
100 Obsoletes: pam-pam_skey < 0.99
101 Obsoletes: pam-pam_tally < 1:1.5.3
102 Obsoletes: pam-pam_tcpd < 0.99
105 Conflicts: dev < 3.4-4
106 Conflicts: pam < 0:0.80.1-2
107 Conflicts: udev < 1:138-5
108 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
110 %define _sbindir /sbin
113 PAM (Pluggable Authentication Modules) is a powerful, flexible,
114 extensible authentication system which allows the system administrator
115 to configure authentication services individually for every
116 pam-compliant application without recompiling any of the applications.
118 %description -l de.UTF-8
119 PAM (Pluggable Authentication Modules) ist ein leistungsfähiges,
120 flexibles und erweiterbares Authentifizierungssystem, mit dem der
121 Systemverwalter Authentifizierungs-Dienste individuell für jede
122 pam-kompatible Anwendung konfigurieren kann, ohne diese neu
123 kompilieren zu müssen.
125 %description -l es.UTF-8
126 PAM (Módulos de Autenticación Plugables) es un potente, flexible y
127 extensible sistema de autentificación, que permite al administrador
128 del sistema configurar servicios de autentificación individualmente
129 para cada aplicación pam compatible, sin la necesidad de recompilar
130 cualquier una de las aplicaciones.
132 %description -l fr.UTF-8
133 PAM (Pluggable Authentication Modules) est un systéme
134 d'authentification puissant, souple et extensible permettant à
135 l'administrateur système de configurer les individuellement les
136 services d'authentification pour chaque application conforme à PAM,
137 sans recompiler aucune application.
139 %description -l pl.UTF-8
140 PAM (Pluggable Authentication Modules) jest silnym i łatwo
141 dostosowywalnym do potrzeb systemem uwierzytelniania, który umożliwia
142 administratorowi indywidualne konfigurowanie poszczególnych usług,
143 które są dostosowane i skonsolidowane z bibliotekami PAM, bez
144 późniejszej ich rekompilacji w momencie zmiany sposobu
145 uwierzytelniania tychże usług.
147 %description -l pt_BR.UTF-8
148 PAM (Módulos de Autenticação Plugáveis) é um poderoso, flexível e
149 extensível sistema de autenticação, que permite o administrador do
150 sistema configurar serviços de autenticação individualmente para cada
151 aplicação pam compatível, sem necessidade de recompilar qualquer uma
154 %description -l uk.UTF-8
155 PAM (Pluggable Authentication Modules) - це потужна, гнучка, здатна до
156 розширення система аутентикації, яка дозволяє системному
157 адміністратору налагоджувати севіси авторизації доступу (аутентикації)
158 індивідуально для кожної pam-сумісної програми без необхідності
159 перекомпіляції самої програми. Це базовий механізм аутентикації в PLD
162 %description -l tr.UTF-8
163 PAM (Pluggable Authentication Modules) sistem yöneticilerinin
164 uygulamalardan herhangi birini yeniden derlemeksizin bütün PAM uyumlu
165 uygulamalar için doğrulama hizmetlerini ayarlamalarına yardımcı olan,
166 güclü, esnek ve kapsamlı bir doğrulama sistemidir.
168 %description -l ru.UTF-8
169 PAM (Pluggable Authentication Modules) - это мощная, гибкая,
170 расширяемая система аутентикации, позволяющая системному
171 администратору конфигурировать сервисы авторизации доступа
172 (аутентикации) индивидуально для каждой pam-совместимой программы без
173 необходимости перекомпилляции самой программы. Это базовый механизм
174 аутентикации в PLD Linux.
177 Summary: PAM libraries
178 Summary(pl.UTF-8): Moduły PAM
180 %{?with_econf:Requires: libeconf >= 0.5.0}
186 %description libs -l pl.UTF-8
190 Summary: PAM header files
191 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja programisty do PAM
192 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento com PAM
193 Summary(ru.UTF-8): Библиотеки разработчика для PAM
194 Summary(uk.UTF-8): Бібліотеки програміста для PAM
195 Group: Development/Libraries
196 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
197 %{?with_audit:Requires: audit-libs-devel >= 1.0.8}
198 Requires: filesystem >= 3.0-11
201 Header files for developing PAM based applications.
203 %description devel -l pl.UTF-8
204 Pliki nagłówkowe i dokumentacja programisty do PAM.
206 %description devel -l pt_BR.UTF-8
207 Bibliotecas e arquivos de inclusão para desenvolvimento com PAM
209 %description devel -l ru.UTF-8
210 Этот пакет содержит хедеры и библиотеки разработчика для PAM.
212 %description devel -l uk.UTF-8
213 Цей пакет містить хедери та бібліотеки програміста для PAM.
216 Summary: PAM static libraries
217 Summary(pl.UTF-8): Biblioteki statyczne PAM
218 Summary(ru.UTF-8): Статические библиотеки разработчика для PAM
219 Summary(uk.UTF-8): Статичні бібліотеки програміста для PAM
220 Group: Development/Libraries
221 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
224 PAM static libraries.
226 %description static -l pl.UTF-8
227 Biblioteki statyczne PAM.
229 %description static -l ru.UTF-8
230 Этот пакет содержит статические библиотеки разработчика для PAM.
232 %description static -l uk.UTF-8
233 Цей пакет містить статичні бібліотеки програміста для PAM.
236 Summary: PAM module - SELinux support
237 Summary(pl.UTF-8): Moduł PAM pozwalający na zmianę kontekstów SELinuksa
239 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
240 Requires: libselinux >= 2.1.9
242 %description pam_selinux
243 PAM module - SELinux support.
245 %description pam_selinux -l pl.UTF-8
246 Moduł PAM pozwalający na zmianę kontekstów SELinuksa.
249 Summary: PAM module - authenticate against GDBM database
250 Summary(pl.UTF-8): Moduł PAM do uwierzytelniania względem bazy danych GDBM
252 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
253 Requires: gdbm >= 1.8.3-7
255 %description pam_userdb
256 pam_userdb - PAM module to authenticate against GDBM database.
258 %description pam_userdb -l pl.UTF-8
259 pam_userdb - moduł PAM służący do uwierzytelniania względem bazy
263 %setup -q -a2 -n Linux-PAM-%{version}
278 %{__enable_disable static_libs static} \
281 --includedir=%{_includedir}/security \
282 %{!?with_audit:--disable-audit} \
284 %{!?with_econf:--disable-econf} \
285 %{!?with_doc:--disable-regenerate-docu} \
286 --enable-isadir=../../%{_lib}/security \
288 %{__enable_disable systemd logind} \
289 %{!?with_prelude:--disable-prelude} \
290 %{!?with_selinux:--disable-selinux} \
291 --with-systemdunitdir="%{systemdunitdir}"
293 # we must explicitely update-gmo as we patch a po file
294 %{__make} -C po update-gmo
296 DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
299 rm -rf $RPM_BUILD_ROOT
300 install -d $RPM_BUILD_ROOT{%{_libdir},/etc/pam.d,/usr/lib/pam.d,/var/{log,run/sepermit}} \
301 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
304 DESTDIR=$RPM_BUILD_ROOT \
305 pkgconfigdir=%{_pkgconfigdir}
308 install -p modules/pam_selinux/.libs/pam_selinux_check $RPM_BUILD_ROOT%{_sbindir}
309 cp -p modules/pam_selinux/pam_selinux_check.8 $RPM_BUILD_ROOT%{_mandir}/man8
310 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/pam_selinux_check
313 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
316 for r in modules/pam_*/README; do
317 cp -pf $r doc/txts/README.$(basename $(dirname $r))
319 %{__rm} doc/txts/README.pam_userdb
321 cp -pf doc/index.html doc/html/
323 # fix PAM/pam man page
324 echo ".so PAM.8" > $RPM_BUILD_ROOT%{_mandir}/man8/pam.8
326 :> $RPM_BUILD_ROOT/etc/security/opasswd
327 :> $RPM_BUILD_ROOT/etc/security/blacklist
329 %{?with_static_libs:%{__mv} $RPM_BUILD_ROOT/%{_lib}/lib*.a $RPM_BUILD_ROOT%{_libdir}}
330 %{__rm} $RPM_BUILD_ROOT/%{_lib}/lib*.la
332 cd $RPM_BUILD_ROOT/%{_lib}
333 ln -sf /%{_lib}/$(echo libpam.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam.so
334 ln -sf /%{_lib}/$(echo libpam_misc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam_misc.so
335 ln -sf /%{_lib}/$(echo libpamc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpamc.so
338 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/other
339 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/system-auth
340 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/config-util
341 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/postlogin
343 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_mandir}/man5/system-auth.5
344 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_mandir}/man5/config-util.5
346 # Make sure every module subdirectory gave us a module. Yes, this is hackish.
347 for dir in modules/pam_* ; do
348 %if %{without selinux}
349 [ ${dir} = "modules/pam_selinux" ] && continue
350 [ ${dir} = "modules/pam_sepermit" ] && continue
353 [ ${dir} = "modules/pam_tty_audit" ] && continue
355 if [ -d ${dir} ] ; then
356 if ! ls -1 $RPM_BUILD_ROOT/%{_lib}/security/`basename ${dir}`*.so ; then
357 echo ERROR `basename ${dir}` did not build a module.
363 for module in $RPM_BUILD_ROOT/%{_lib}/security/pam*.so ; do
364 # Check for module problems. Specifically, check that every module we just
365 # installed can actually be loaded by a minimal PAM-aware application.
366 if ! env LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_lib} \
367 ./dlopen.sh -ldl -lpam -L$RPM_BUILD_ROOT/%{_lib} ${module} ; then
368 echo ERROR module: ${module} cannot be loaded.
373 # useless - shut up check-files
374 %{__rm} $RPM_BUILD_ROOT/%{_lib}/security/*.la
375 %{?with_static_libs:%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/*.a}
376 %{__rm} $RPM_BUILD_ROOT/%{_lib}/lib*.so
377 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/Linux-PAM
382 cp -a doc/html rpm-doc/html
383 cp -a doc/sag/html rpm-doc/sag-html
384 cp -a doc/adg/html rpm-doc/adg-html
385 cp -a doc/mwg/html rpm-doc/mwg-html
388 %if %{without selinux}
389 rm -rf $RPM_BUILD_ROOT{/%{_lib}/security/pam_selinux.so,%{_sbindir}/pam_selinux_check,%{_mandir}/man8/pam_selinux*.8*}
395 rm -rf $RPM_BUILD_ROOT
397 %triggerpostun libs -- %{name}-libs < 0.99.7.1
398 for f in $(grep -l "\(pam_make\|pam_homedir\)" /etc/pam.d/*); do
400 *rpmorig|*rpmnew|*rpmsave|*~|*.orig)
404 cp -f "$f" "$f.rpmorig"
405 sed -i -e 's/pam_make\.so \(.*\)/pam_exec.so failok seteuid \/usr\/bin\/make -C \1/g' \
406 -e 's/pam_homedir\.so/pam_mkhomedir.so/g' "$f"
410 if [ -d /var/lock/console -a -d /var/run/console ]; then
411 cp -a /var/lock/console/* /var/run/console/ 2> /dev/null
412 rm -rf /var/lock/console
415 %triggerin -- cronie,vixie-cron,hc-cron,fcron,mcron
416 # restart crond if pam is upgraded
417 # (crond is linked with old libpam but tries to open modules linked with new libpam)
418 if [ "$1" != 1 ]; then
419 %service -q crond restart
423 %triggerpostun -- %{name} < 1:1.5.3-4
425 if grep -qs pam_tally /etc/pam.d/system-auth; then
426 %{__sed} -i -e '/pam_tally/d' /etc/pam.d/system-auth
428 if grep -qs pam_cracklib /etc/pam.d/system-auth; then
429 %{__sed} -i -e '/pam_cracklib/ s/pam_cracklib/pam_pwquality/' /etc/pam.d/system-auth
432 if grep -qs pam_pwquality /etc/pam.d/system-auth; then
433 %{__sed} -i -e '/pam_pwquality/ s/use_authtok//' /etc/pam.d/system-auth
437 if grep -qs change_uid /etc/pam.d/system-auth; then
438 %{__sed} -i -e '/session/ s/change_uid//' /etc/pam.d/system-auth
441 # We want it added for painless upgarde even if it mean log pollution for non-systemd
443 # If this module is not present on systemd enabled system then `systemctl restart sshd.service`
444 # will kill all sessions.
445 if ! grep -qs pam_systemd /etc/pam.d/system-auth; then
446 echo "-session optional pam_systemd.so" >>/etc/pam.d/system-auth
449 %post libs -p /sbin/ldconfig
450 %postun libs -p /sbin/ldconfig
452 %files -f Linux-PAM.lang
453 %defattr(644,root,root,755)
454 %doc AUTHORS CHANGELOG ChangeLog Copyright NEWS doc/txts/README*
456 %doc doc/specs/*.txt doc/sag/Linux-PAM_*.txt rpm-doc/{html,sag-html}
459 %dir /etc/security/console.apps
460 %dir /etc/security/console.perms.d
461 %dir /etc/security/limits.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/faillock.conf
475 %config(noreplace) %verify(not md5 mtime size) /etc/security/group.conf
476 %config(noreplace) %verify(not md5 mtime size) /etc/security/limits.conf
477 %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.conf
478 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.init
479 %config(noreplace) %verify(not md5 mtime size) /etc/security/pam_env.conf
480 %config(noreplace) %verify(not md5 mtime size) /etc/security/pwhistory.conf
481 %config(noreplace) %verify(not md5 mtime size) /etc/security/time.conf
482 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram
483 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.en
484 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.de
485 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.dk
486 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.es
487 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.fi
488 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.it
489 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.ja
490 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.no
491 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.pl
492 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms.d/50-default.perms
493 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/opasswd
494 %attr(755,root,root) %{_bindir}/pam_pwgen
495 %attr(755,root,root) %{_sbindir}/faillock
496 %attr(755,root,root) %{_sbindir}/mkhomedir_helper
497 %attr(755,root,root) %{_sbindir}/pam_console_apply
498 %attr(755,root,root) %{_sbindir}/pam_namespace_helper
499 %attr(755,root,root) %{_sbindir}/pam_timestamp_check
500 %attr(755,root,root) %{_sbindir}/pwgen_trigram
501 %attr(755,root,root) %{_sbindir}/pwhistory_helper
502 %attr(4755,root,root) %{_sbindir}/unix_chkpwd
503 %attr(4755,root,root) %{_sbindir}/unix_update
504 %{systemdunitdir}/pam_namespace.service
505 %{_mandir}/man5/access.conf.5*
506 %{_mandir}/man5/config-util.5*
507 %{_mandir}/man5/console.apps.5*
508 %{_mandir}/man5/console.handlers.5*
509 %{_mandir}/man5/console.perms.5*
510 %{_mandir}/man5/environment.5*
511 %{_mandir}/man5/faillock.conf.5*
512 %{_mandir}/man5/group.conf.5*
513 %{_mandir}/man5/limits.conf.5*
514 %{_mandir}/man5/namespace.conf.5*
515 %{_mandir}/man5/pam.conf.5*
516 %{_mandir}/man5/pam.d.5*
517 %{_mandir}/man5/pam_env.conf.5*
518 %{_mandir}/man5/pwhistory.conf.5*
519 %{_mandir}/man5/system-auth.5*
520 %{_mandir}/man5/time.conf.5*
521 %{_mandir}/man8/PAM.8*
522 %{_mandir}/man8/faillock.8*
523 %{_mandir}/man8/mkhomedir_helper.8*
524 %{_mandir}/man8/pam.8*
525 %{_mandir}/man8/pam_*.8*
526 %{_mandir}/man8/pwhistory_helper.8*
527 %{_mandir}/man8/unix_chkpwd.8*
528 %{_mandir}/man8/unix_update.8*
530 %exclude %{_mandir}/man8/pam_selinux*.8*
531 %exclude %{_mandir}/man8/pam_sepermit.8*
533 %exclude %{_mandir}/man8/pam_userdb.8*
536 %attr(755,root,root) /%{_lib}/security/pam_access.so
537 %attr(755,root,root) /%{_lib}/security/pam_canonicalize_user.so
538 %attr(755,root,root) /%{_lib}/security/pam_console.so
539 %attr(755,root,root) /%{_lib}/security/pam_debug.so
540 %attr(755,root,root) /%{_lib}/security/pam_deny.so
541 %attr(755,root,root) /%{_lib}/security/pam_echo.so
542 %attr(755,root,root) /%{_lib}/security/pam_env.so
543 %attr(755,root,root) /%{_lib}/security/pam_exec.so
544 %attr(755,root,root) /%{_lib}/security/pam_faildelay.so
545 %attr(755,root,root) /%{_lib}/security/pam_faillock.so
546 %attr(755,root,root) /%{_lib}/security/pam_filter.so
547 %attr(755,root,root) /%{_lib}/security/pam_filter/upperLOWER
548 %attr(755,root,root) /%{_lib}/security/pam_ftp.so
549 %attr(755,root,root) /%{_lib}/security/pam_group.so
550 %attr(755,root,root) /%{_lib}/security/pam_issue.so
551 %attr(755,root,root) /%{_lib}/security/pam_keyinit.so
552 %attr(755,root,root) /%{_lib}/security/pam_lastlog.so
553 %attr(755,root,root) /%{_lib}/security/pam_limits.so
554 %attr(755,root,root) /%{_lib}/security/pam_listfile.so
555 %attr(755,root,root) /%{_lib}/security/pam_localuser.so
556 %attr(755,root,root) /%{_lib}/security/pam_loginuid.so
557 %attr(755,root,root) /%{_lib}/security/pam_mail.so
558 %attr(755,root,root) /%{_lib}/security/pam_mkhomedir.so
559 %attr(755,root,root) /%{_lib}/security/pam_motd.so
560 %attr(755,root,root) /%{_lib}/security/pam_namespace.so
561 %attr(755,root,root) /%{_lib}/security/pam_nologin.so
562 %attr(755,root,root) /%{_lib}/security/pam_permit.so
563 %attr(755,root,root) /%{_lib}/security/pam_pwexport.so
564 %attr(755,root,root) /%{_lib}/security/pam_pwgen.so
565 %attr(755,root,root) /%{_lib}/security/pam_pwhistory.so
566 %attr(755,root,root) /%{_lib}/security/pam_rhosts.so
567 %attr(755,root,root) /%{_lib}/security/pam_rootok.so
568 %attr(755,root,root) /%{_lib}/security/pam_rps.so
569 %attr(755,root,root) /%{_lib}/security/pam_securetty.so
570 %attr(755,root,root) /%{_lib}/security/pam_setquota.so
571 %attr(755,root,root) /%{_lib}/security/pam_shells.so
572 %attr(755,root,root) /%{_lib}/security/pam_stress.so
573 %attr(755,root,root) /%{_lib}/security/pam_succeed_if.so
574 %attr(755,root,root) /%{_lib}/security/pam_time.so
575 %attr(755,root,root) /%{_lib}/security/pam_timestamp.so
576 %{?with_audit:%attr(755,root,root) /%{_lib}/security/pam_tty_audit.so}
577 %attr(755,root,root) /%{_lib}/security/pam_umask.so
578 %attr(755,root,root) /%{_lib}/security/pam_unix.so
579 %attr(755,root,root) /%{_lib}/security/pam_usertype.so
580 %attr(755,root,root) /%{_lib}/security/pam_warn.so
581 %attr(755,root,root) /%{_lib}/security/pam_wheel.so
582 %attr(755,root,root) /%{_lib}/security/pam_xauth.so
585 %defattr(644,root,root,755)
586 %dir /%{_lib}/security/pam_filter
587 %attr(755,root,root) /%{_lib}/libpam.so.*.*.*
588 %attr(755,root,root) %ghost /%{_lib}/libpam.so.0
589 %attr(755,root,root) /%{_lib}/libpam_misc.so.*.*.*
590 %attr(755,root,root) %ghost /%{_lib}/libpam_misc.so.0
591 %attr(755,root,root) /%{_lib}/libpamc.so.*.*.*
592 %attr(755,root,root) %ghost /%{_lib}/libpamc.so.0
595 %defattr(644,root,root,755)
597 %doc doc/{adg,mwg}/Linux-PAM_*.txt rpm-doc/{adg,mwg}-html
599 %attr(755,root,root) %{_libdir}/libpam.so
600 %attr(755,root,root) %{_libdir}/libpam_misc.so
601 %attr(755,root,root) %{_libdir}/libpamc.so
602 %{_pkgconfigdir}/pam.pc
603 %{_pkgconfigdir}/pam_misc.pc
604 %{_pkgconfigdir}/pamc.pc
605 %{_includedir}/security/_pam_*.h
606 %{_includedir}/security/pam*.h
607 %{_mandir}/man3/misc_conv.3*
608 %{_mandir}/man3/pam*.3*
610 %if %{with static_libs}
612 %defattr(644,root,root,755)
615 %{_libdir}/libpam_misc.a
620 %defattr(644,root,root,755)
621 %attr(755,root,root) /%{_lib}/security/pam_selinux.so
622 %attr(755,root,root) /%{_lib}/security/pam_sepermit.so
623 %attr(755,root,root) %{_sbindir}/pam_selinux_check
624 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/pam_selinux_check
625 %config(noreplace) %verify(not md5 mtime size) /etc/security/sepermit.conf
626 %{_mandir}/man5/sepermit.conf.5*
627 %{_mandir}/man8/pam_selinux*.8*
628 %{_mandir}/man8/pam_sepermit.8*
629 %dir /var/run/sepermit
633 %defattr(644,root,root,755)
634 %doc modules/pam_userdb/README
635 %attr(755,root,root) /%{_lib}/security/pam_userdb.so
636 %{_mandir}/man8/pam_userdb.8*