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
5 # /usr/share/man/man5/environment.5
8 %bcond_without doc # don't build documentation
9 %bcond_with prelude # build with Prelude IDS support (in libpam)
10 %bcond_without selinux # build without SELinux support
11 %bcond_without audit # build with Linux Auditing library support
13 %define pam_pld_version 1.1.2-1
14 Summary: Pluggable Authentication Modules: modular, incremental authentication
15 Summary(de.UTF-8): Einsteckbare Authentifizierungsmodule: modulare, inkrementäre Authentifizierung
16 Summary(es.UTF-8): Módulos de autentificación plugables (PAM)
17 Summary(fr.UTF-8): PAM : Pluggable Authentication Modules: modular, incremental authentication
18 Summary(pl.UTF-8): Modularny system uwierzytelniania
19 Summary(pt_BR.UTF-8): Módulos de autenticação plugáveis (PAM)
20 Summary(ru.UTF-8): Интструмент, обеспечивающий аутентификацию для приложений
21 Summary(tr.UTF-8): Modüler, artımsal doğrulama birimleri
22 Summary(uk.UTF-8): Інструмент, що забезпечує аутентифікацію для програм
29 Source0: http://www.linux-pam.org/library/Linux-PAM-%{version}.tar.bz2
30 # Source0-md5: da4b2289b7cfb19583d54e9eaaef1c3a
31 Source1: http://www.linux-pam.org/library/Linux-PAM-%{version}-docs.tar.bz2
32 # Source1-md5: 30fa7fa696a5b3b8d2c3c41d9373a8f3
33 Source2: ftp://ftp.pld-linux.org/software/pam/%{name}-pld-%{pam_pld_version}.tar.gz
34 # Source2-md5: f9ec6fcafcf1801bf318e60040244f2e
36 Source4: system-auth.pamd
37 Source5: config-util.pamd
38 Source6: %{name}_selinux_check.pamd
39 Source7: system-auth.5
40 Source8: config-util.5
41 Source9: %{name}.tmpfiles
42 Source10: postlogin.pamd
43 Patch0: %{name}-pld-modules.patch
44 Patch2: %{name}-tally-fail-close.patch
45 Patch3: %{name}-mkhomedir-notfound.patch
46 Patch4: %{name}-db-gdbm.patch
47 Patch5: %{name}-exec-failok.patch
48 Patch6: update-motd.patch
49 URL: http://www.linux-pam.org/
50 %{?with_audit:BuildRequires: audit-libs-devel >= 1.6.9}
51 BuildRequires: autoconf >= 2.61
52 BuildRequires: automake
54 BuildRequires: cracklib-devel >= 2.8.3
55 # gdbm due to db pulling libpthread
57 BuildRequires: gdbm-devel >= 1.8.3-7
58 BuildRequires: gettext-tools >= 0.18.3
59 BuildRequires: glibc-devel >= 6:2.10.1
60 %{?with_prelude:BuildRequires: libprelude-devel >= 0.9.0}
61 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
62 #BuildRequires: libtirpc-devel
63 BuildRequires: libtool >= 2:1.5
64 BuildRequires: libxcrypt-devel
65 %{?with_audit:BuildRequires: linux-libc-headers >= 2.6.23.1}
66 BuildRequires: pkgconfig
67 BuildRequires: zlib-devel
69 BuildRequires: docbook-dtd412-xml
70 BuildRequires: docbook-dtd43-xml
71 BuildRequires: docbook-dtd44-xml
72 BuildRequires: docbook-style-xsl >= 1.69.1
75 BuildRequires: libxml2-progs
76 BuildRequires: libxslt-progs
79 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
80 %{?with_audit:Requires: audit-libs >= 1.0.8}
82 Requires: cracklib >= 2.8.3
83 Requires: cracklib-dicts >= 2.8.3
84 Requires: crypt(blowfish)
85 Requires: glibc >= 6:2.5-0.5
86 %{?with_selinux:Requires: libselinux >= 2.1.9}
88 Suggests: pam-pam_userdb = %{epoch}:%{version}-%{release}
90 Obsoletes: pam-pam_opie
91 Obsoletes: pam-pam_pwdb
92 Obsoletes: pam-pam_radius
93 Obsoletes: pam-pam_skey
94 Obsoletes: pam-pam_tcpd
97 Conflicts: dev < 3.4-4
98 Conflicts: pam < 0:0.80.1-2
99 Conflicts: udev < 1:138-5
100 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
102 %define _sbindir /sbin
105 PAM (Pluggable Authentication Modules) is a powerful, flexible,
106 extensible authentication system which allows the system administrator
107 to configure authentication services individually for every
108 pam-compliant application without recompiling any of the applications.
110 %description -l de.UTF-8
111 PAM (Pluggable Authentication Modules) ist ein leistungsfähiges,
112 flexibles und erweiterbares Authentifizierungssystem, mit dem der
113 Systemverwalter Authentifizierungs-Dienste individuell für jede
114 pam-kompatible Anwendung konfigurieren kann, ohne diese neu
115 kompilieren zu müssen.
117 %description -l es.UTF-8
118 PAM (Módulos de Autenticación Plugables) es un potente, flexible y
119 extensible sistema de autentificación, que permite al administrador
120 del sistema configurar servicios de autentificación individualmente
121 para cada aplicación pam compatible, sin la necesidad de recompilar
122 cualquier una de las aplicaciones.
124 %description -l fr.UTF-8
125 PAM (Pluggable Authentication Modules) est un systéme
126 d'authentification puissant, souple et extensible permettant à
127 l'administrateur système de configurer les individuellement les
128 services d'authentification pour chaque application conforme à PAM,
129 sans recompiler aucune application.
131 %description -l pl.UTF-8
132 PAM (Pluggable Authentication Modules) jest silnym i łatwo
133 dostosowywalnym do potrzeb systemem uwierzytelniania, który umożliwia
134 administratorowi indywidualne konfigurowanie poszczególnych usług,
135 które są dostosowane i skonsolidowane z bibliotekami PAM, bez
136 późniejszej ich rekompilacji w momencie zmiany sposobu
137 uwierzytelniania tychże usług.
139 %description -l pt_BR.UTF-8
140 PAM (Módulos de Autenticação Plugáveis) é um poderoso, flexível e
141 extensível sistema de autenticação, que permite o administrador do
142 sistema configurar serviços de autenticação individualmente para cada
143 aplicação pam compatível, sem necessidade de recompilar qualquer uma
146 %description -l uk.UTF-8
147 PAM (Pluggable Authentication Modules) - це потужна, гнучка, здатна до
148 розширення система аутентикації, яка дозволяє системному
149 адміністратору налагоджувати севіси авторизації доступу (аутентикації)
150 індивідуально для кожної pam-сумісної програми без необхідності
151 перекомпіляції самої програми. Це базовий механізм аутентикації в PLD
154 %description -l tr.UTF-8
155 PAM (Pluggable Authentication Modules) sistem yöneticilerinin
156 uygulamalardan herhangi birini yeniden derlemeksizin bütün PAM uyumlu
157 uygulamalar için doğrulama hizmetlerini ayarlamalarına yardımcı olan,
158 güclü, esnek ve kapsamlı bir doğrulama sistemidir.
160 %description -l ru.UTF-8
161 PAM (Pluggable Authentication Modules) - это мощная, гибкая,
162 расширяемая система аутентикации, позволяющая системному
163 администратору конфигурировать сервисы авторизации доступа
164 (аутентикации) индивидуально для каждой pam-совместимой программы без
165 необходимости перекомпилляции самой программы. Это базовый механизм
166 аутентикации в PLD Linux.
169 Summary: PAM libraries
170 Summary(pl.UTF-8): Moduły PAM
172 Requires(triggerpostun): sed >= 4.0
177 %description libs -l pl.UTF-8
181 Summary: PAM header files
182 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja programisty do PAM
183 Summary(pt_BR.UTF-8): Bibliotecas e arquivos de inclusão para desenvolvimento com PAM
184 Summary(ru.UTF-8): Библиотеки разработчика для PAM
185 Summary(uk.UTF-8): Бібліотеки програміста для PAM
186 Group: Development/Libraries
187 Requires: %{name} = %{epoch}:%{version}-%{release}
188 %{?with_audit:Requires: audit-libs-devel >= 1.0.8}
189 Requires: filesystem >= 3.0-11
192 Header files for developing PAM based applications.
194 %description devel -l pl.UTF-8
195 Pliki nagłówkowe i dokumentacja programisty do PAM.
197 %description devel -l pt_BR.UTF-8
198 Bibliotecas e arquivos de inclusão para desenvolvimento com PAM
200 %description devel -l ru.UTF-8
201 Этот пакет содержит хедеры и библиотеки разработчика для PAM.
203 %description devel -l uk.UTF-8
204 Цей пакет містить хедери та бібліотеки програміста для PAM.
207 Summary: PAM static libraries
208 Summary(pl.UTF-8): Biblioteki statyczne PAM
209 Summary(ru.UTF-8): Статические библиотеки разработчика для PAM
210 Summary(uk.UTF-8): Статичні бібліотеки програміста для PAM
211 Group: Development/Libraries
212 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
215 PAM static libraries.
217 %description static -l pl.UTF-8
218 Biblioteki statyczne PAM.
220 %description static -l ru.UTF-8
221 Этот пакет содержит статические библиотеки разработчика для PAM.
223 %description static -l uk.UTF-8
224 Цей пакет містить статичні бібліотеки програміста для PAM.
227 Summary: PAM module - SELinux support
228 Summary(pl.UTF-8): Moduł PAM pozwalający na zmianę kontekstów SELinuksa
230 Requires: libselinux >= 2.1.9
232 %description pam_selinux
233 PAM module - SELinux support.
235 %description pam_selinux -l pl.UTF-8
236 Moduł PAM pozwalający na zmianę kontekstów SELinuksa.
239 Summary: PAM module - authenticate against db database
241 Requires: gdbm >= 1.8.3-7
242 Conflicts: pam-libs < 1:1.1.8-3.1
244 %description pam_userdb
245 pam_userdb - PAM module to authenticate against a Berkeley DB database
248 %setup -q -a2 -n Linux-PAM-%{version}
267 --includedir=%{_includedir}/security \
268 --enable-isadir=../../%{_lib}/security \
270 %{!?with_selinux:--disable-selinux} \
271 %{!?with_prelude:--disable-prelude} \
272 %{!?with_audit:--disable-audit}
274 # we must explicitely update-gmo as we patch a po file
275 %{__make} -C po update-gmo
277 DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
280 rm -rf $RPM_BUILD_ROOT
281 install -d $RPM_BUILD_ROOT{%{_libdir},/etc/pam.d,/var/{log,run/sepermit}} \
282 $RPM_BUILD_ROOT%{systemdtmpfilesdir}
285 DESTDIR=$RPM_BUILD_ROOT
288 install -p modules/pam_selinux/.libs/pam_selinux_check $RPM_BUILD_ROOT%{_sbindir}
289 cp -p modules/pam_selinux/pam_selinux_check.8 $RPM_BUILD_ROOT%{_mandir}/man8
290 cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/pam_selinux_check
293 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
296 for r in modules/pam_*/README; do
297 cp -pf $r doc/txts/README.$(basename $(dirname $r))
299 rm doc/txts/README.pam_userdb
301 cp -pf doc/index.html doc/html/
303 # fix PAM/pam man page
304 echo ".so PAM.8" > $RPM_BUILD_ROOT%{_mandir}/man8/pam.8
306 :> $RPM_BUILD_ROOT/etc/security/opasswd
307 :> $RPM_BUILD_ROOT/etc/security/blacklist
309 :> $RPM_BUILD_ROOT/var/log/tallylog
311 mv -f $RPM_BUILD_ROOT/%{_lib}/lib*.a $RPM_BUILD_ROOT%{_libdir}
313 cd $RPM_BUILD_ROOT/%{_lib}
314 for f in lib*.la ; do
315 sed -e 's|/%{_lib}/libpam|%{_libdir}/libpam|g' $f > $RPM_BUILD_ROOT%{_libdir}/$f
317 sed -i -e "s|libdir='/%{_lib}|libdir='%{_libdir}|g" $RPM_BUILD_ROOT%{_libdir}/$f
319 ln -sf /%{_lib}/$(echo libpam.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam.so
320 ln -sf /%{_lib}/$(echo libpam_misc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam_misc.so
321 ln -sf /%{_lib}/$(echo libpamc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpamc.so
324 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/other
325 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/pam.d/system-auth
326 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/config-util
327 cp -p %{SOURCE10} $RPM_BUILD_ROOT/etc/pam.d/postlogin
329 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_mandir}/man5/system-auth.5
330 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_mandir}/man5/config-util.5
332 # Make sure every module subdirectory gave us a module. Yes, this is hackish.
333 for dir in modules/pam_* ; do
334 %if %{without selinux}
335 [ ${dir} = "modules/pam_selinux" ] && continue
336 [ ${dir} = "modules/pam_sepermit" ] && continue
339 [ ${dir} = "modules/pam_tty_audit" ] && continue
341 if [ -d ${dir} ] ; then
342 if ! ls -1 $RPM_BUILD_ROOT/%{_lib}/security/`basename ${dir}`*.so ; then
343 echo ERROR `basename ${dir}` did not build a module.
349 for module in $RPM_BUILD_ROOT/%{_lib}/security/pam*.so ; do
350 # Check for module problems. Specifically, check that every module we just
351 # installed can actually be loaded by a minimal PAM-aware application.
352 if ! env LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_lib} \
353 ./dlopen.sh -ldl -lpam -L$RPM_BUILD_ROOT/%{_lib} ${module} ; then
354 echo ERROR module: ${module} cannot be loaded.
359 # useless - shut up check-files
360 rm -f $RPM_BUILD_ROOT/%{_lib}/security/*.{la,a}
361 rm -f $RPM_BUILD_ROOT/%{_lib}/lib*.so
362 rm -rf $RPM_BUILD_ROOT%{_docdir}/Linux-PAM
364 %if %{without selinux}
365 rm -rf $RPM_BUILD_ROOT{/%{_lib}/security/pam_selinux.so,%{_sbindir}/pam_selinux_check,%{_mandir}/man8/pam_selinux*.8*}
371 rm -rf $RPM_BUILD_ROOT
373 %triggerpostun libs -- %{name}-libs < 0.99.7.1
374 for f in $(grep -l "\(pam_make\|pam_homedir\)" /etc/pam.d/*); do
376 *rpmorig|*rpmnew|*rpmsave|*~|*.orig)
380 cp -f "$f" "$f.rpmorig"
381 sed -i -e 's/pam_make\.so \(.*\)/pam_exec.so failok seteuid \/usr\/bin\/make -C \1/g' \
382 -e 's/pam_homedir\.so/pam_mkhomedir.so/g' "$f"
386 if [ -d /var/lock/console -a -d /var/run/console ]; then
387 cp -a /var/lock/console/* /var/run/console/ 2> /dev/null
388 rm -rf /var/lock/console
391 %triggerin -- cronie,vixie-cron,hc-cron,fcron,mcron
392 # restart crond if pam is upgraded
393 # (crond is linked with old libpam but tries to open modules linked with new libpam)
394 if [ "$1" != 1 ]; then
395 %service -q crond restart
399 %triggerpostun -- %{name} < 1:1.1.5-8
401 if grep -qs change_uid /etc/pam.d/system-auth; then
402 %{__sed} -i -e '/session/ s/change_uid//' /etc/pam.d/system-auth
405 # We want it added for painless upgarde even if it mean log pollution for non-systemd
407 # If this module is not present on systemd enabled system then `systemctl restart sshd.service`
408 # will kill all sessions.
409 if ! grep -qs pam_systemd /etc/pam.d/system-auth; then
410 echo "-session optional pam_systemd.so" >>/etc/pam.d/system-auth
414 fh, error = io.open("/var/log/tallylog")
418 fh = io.open("/var/log/tallylog", "w+")
420 posix.chmod("/var/log/tallylog", "rw-------")
423 %post libs -p /sbin/ldconfig
424 %postun libs -p /sbin/ldconfig
426 %files -f Linux-PAM.lang
427 %defattr(644,root,root,755)
428 %doc AUTHORS CHANGELOG ChangeLog Copyright NEWS doc/txts/README*
430 %doc doc/specs/*.txt doc/sag/Linux-PAM_*.txt doc/{sag,}/html
433 %dir /etc/security/console.apps
434 %dir /etc/security/console.perms.d
435 %dir /var/run/console
436 %{systemdtmpfilesdir}/%{name}.conf
437 %config(noreplace) %verify(not md5 mtime size) /etc/environment
438 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/other
439 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/system-auth
440 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/config-util
441 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/postlogin
442 %config(noreplace) %verify(not md5 mtime size) /etc/security/access.conf
443 %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist
444 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.handlers
445 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms
446 %config(noreplace) %verify(not md5 mtime size) /etc/security/group.conf
447 %config(noreplace) %verify(not md5 mtime size) /etc/security/limits.conf
448 %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.conf
449 %attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.init
450 %config(noreplace) %verify(not md5 mtime size) /etc/security/pam_env.conf
451 %config(noreplace) %verify(not md5 mtime size) /etc/security/time.conf
452 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram
453 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.en
454 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.de
455 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.dk
456 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.es
457 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.fi
458 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.it
459 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.ja
460 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.no
461 %config(noreplace) %verify(not md5 mtime size) /etc/security/trigram.pl
462 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms.d/50-default.perms
463 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/opasswd
464 %attr(755,root,root) %{_bindir}/pam_pwgen
465 %attr(755,root,root) %{_sbindir}/mkhomedir_helper
466 %attr(755,root,root) %{_sbindir}/pam_console_apply
467 %attr(755,root,root) %{_sbindir}/pam_tally
468 %attr(755,root,root) %{_sbindir}/pam_tally2
469 %attr(755,root,root) %{_sbindir}/pam_timestamp_check
470 %attr(755,root,root) %{_sbindir}/pwgen_trigram
471 %attr(4755,root,root) %{_sbindir}/unix_chkpwd
472 %attr(4755,root,root) %{_sbindir}/unix_update
473 %{_mandir}/man5/access.conf.5*
474 %{_mandir}/man5/config-util.5*
475 %{_mandir}/man5/console.apps.5*
476 %{_mandir}/man5/console.handlers.5*
477 %{_mandir}/man5/console.perms.5*
478 %{_mandir}/man5/group.conf.5*
479 %{_mandir}/man5/limits.conf.5*
480 %{_mandir}/man5/namespace.conf.5*
481 %{_mandir}/man5/pam.conf.5*
482 %{_mandir}/man5/pam.d.5*
483 %{_mandir}/man5/pam_env.conf.5*
484 %{_mandir}/man5/system-auth.5*
485 %{_mandir}/man5/time.conf.5*
486 %{_mandir}/man8/PAM.8*
487 %{_mandir}/man8/mkhomedir_helper.8*
488 %{_mandir}/man8/pam.8*
489 %{_mandir}/man8/pam_*.8*
490 %{_mandir}/man8/unix_chkpwd.8*
491 %{_mandir}/man8/unix_update.8*
493 %exclude %{_mandir}/man8/pam_selinux*.8*
494 %exclude %{_mandir}/man8/pam_sepermit.8*
496 %exclude %{_mandir}/man8/pam_userdb.8*
497 %ghost %verify(not md5 mtime size) /var/log/tallylog
500 %attr(755,root,root) /%{_lib}/security/pam_access.so
501 %attr(755,root,root) /%{_lib}/security/pam_console.so
502 %attr(755,root,root) /%{_lib}/security/pam_cracklib.so
503 %attr(755,root,root) /%{_lib}/security/pam_debug.so
504 %attr(755,root,root) /%{_lib}/security/pam_deny.so
505 %attr(755,root,root) /%{_lib}/security/pam_echo.so
506 %attr(755,root,root) /%{_lib}/security/pam_env.so
507 %attr(755,root,root) /%{_lib}/security/pam_exec.so
508 %attr(755,root,root) /%{_lib}/security/pam_faildelay.so
509 %attr(755,root,root) /%{_lib}/security/pam_filter.so
510 %attr(755,root,root) /%{_lib}/security/pam_filter/upperLOWER
511 %attr(755,root,root) /%{_lib}/security/pam_ftp.so
512 %attr(755,root,root) /%{_lib}/security/pam_group.so
513 %attr(755,root,root) /%{_lib}/security/pam_issue.so
514 %attr(755,root,root) /%{_lib}/security/pam_keyinit.so
515 %attr(755,root,root) /%{_lib}/security/pam_lastlog.so
516 %attr(755,root,root) /%{_lib}/security/pam_limits.so
517 %attr(755,root,root) /%{_lib}/security/pam_listfile.so
518 %attr(755,root,root) /%{_lib}/security/pam_localuser.so
519 %attr(755,root,root) /%{_lib}/security/pam_loginuid.so
520 %attr(755,root,root) /%{_lib}/security/pam_mail.so
521 %attr(755,root,root) /%{_lib}/security/pam_mkhomedir.so
522 %attr(755,root,root) /%{_lib}/security/pam_motd.so
523 %attr(755,root,root) /%{_lib}/security/pam_namespace.so
524 %attr(755,root,root) /%{_lib}/security/pam_nologin.so
525 %attr(755,root,root) /%{_lib}/security/pam_permit.so
526 %attr(755,root,root) /%{_lib}/security/pam_pwexport.so
527 %attr(755,root,root) /%{_lib}/security/pam_pwgen.so
528 %attr(755,root,root) /%{_lib}/security/pam_pwhistory.so
529 %attr(755,root,root) /%{_lib}/security/pam_rhosts.so
530 %attr(755,root,root) /%{_lib}/security/pam_rootok.so
531 %attr(755,root,root) /%{_lib}/security/pam_rps.so
532 %attr(755,root,root) /%{_lib}/security/pam_securetty.so
533 %attr(755,root,root) /%{_lib}/security/pam_shells.so
534 %attr(755,root,root) /%{_lib}/security/pam_stress.so
535 %attr(755,root,root) /%{_lib}/security/pam_succeed_if.so
536 %attr(755,root,root) /%{_lib}/security/pam_tally2.so
537 %attr(755,root,root) /%{_lib}/security/pam_tally.so
538 %attr(755,root,root) /%{_lib}/security/pam_time.so
539 %attr(755,root,root) /%{_lib}/security/pam_timestamp.so
540 %{?with_audit:%attr(755,root,root) /%{_lib}/security/pam_tty_audit.so}
541 %attr(755,root,root) /%{_lib}/security/pam_umask.so
542 %attr(755,root,root) /%{_lib}/security/pam_unix.so
543 %attr(755,root,root) /%{_lib}/security/pam_warn.so
544 %attr(755,root,root) /%{_lib}/security/pam_wheel.so
545 %attr(755,root,root) /%{_lib}/security/pam_xauth.so
548 %defattr(644,root,root,755)
549 %dir /%{_lib}/security/pam_filter
550 %attr(755,root,root) /%{_lib}/libpam.so.*.*.*
551 %attr(755,root,root) %ghost /%{_lib}/libpam.so.0
552 %attr(755,root,root) /%{_lib}/libpam_misc.so.*.*.*
553 %attr(755,root,root) %ghost /%{_lib}/libpam_misc.so.0
554 %attr(755,root,root) /%{_lib}/libpamc.so.*.*.*
555 %attr(755,root,root) %ghost /%{_lib}/libpamc.so.0
558 %defattr(644,root,root,755)
560 %doc doc/{adg,mwg}/Linux-PAM_*.txt doc/{adg,mwg,}/html
562 %attr(755,root,root) %{_libdir}/libpam.so
563 %attr(755,root,root) %{_libdir}/libpam_misc.so
564 %attr(755,root,root) %{_libdir}/libpamc.so
566 %{_libdir}/libpam_misc.la
567 %{_libdir}/libpamc.la
568 %{_includedir}/security/_pam_*.h
569 %{_includedir}/security/pam*.h
570 %{_mandir}/man3/misc_conv.3*
571 %{_mandir}/man3/pam*.3*
574 %defattr(644,root,root,755)
577 %{_libdir}/libpam_misc.a
581 %defattr(644,root,root,755)
582 %attr(755,root,root) /%{_lib}/security/pam_selinux.so
583 %attr(755,root,root) /%{_lib}/security/pam_sepermit.so
584 %attr(755,root,root) %{_sbindir}/pam_selinux_check
585 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/pam_selinux_check
586 %config(noreplace) %verify(not md5 mtime size) /etc/security/sepermit.conf
587 %{_mandir}/man5/sepermit.conf.5*
588 %{_mandir}/man8/pam_selinux*.8*
589 %{_mandir}/man8/pam_sepermit.8*
590 %dir /var/run/sepermit
594 %defattr(644,root,root,755)
595 %doc modules/pam_userdb/README
596 %attr(755,root,root) /%{_lib}/security/pam_userdb.so
597 %{_mandir}/man8/pam_userdb.8*