<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pam on Servicios Rogeliowar</title><link>https://blog.serviciosrogeliowar.com/tags/pam/</link><description>Recent content in Pam on Servicios Rogeliowar</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>© 2026 Rogelio Guerra Riverón</copyright><lastBuildDate>Thu, 18 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.serviciosrogeliowar.com/tags/pam/index.xml" rel="self" type="application/rss+xml"/><item><title>Errores frecuentes en FreeRADIUS 3.x con PAM: guía de diagnóstico</title><link>https://blog.serviciosrogeliowar.com/posts/errores-frecuentes-freeradius-pam-diagnostico/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/posts/errores-frecuentes-freeradius-pam-diagnostico/</guid><description>&lt;p&gt;Configurar FreeRADIUS 3.x con autenticación PAM —especialmente combinando &lt;code&gt;pam_google_authenticator&lt;/code&gt;, &lt;code&gt;pam_winbind&lt;/code&gt; y fail2ban— genera un conjunto de errores que aparecen una y otra vez. Este artículo los recoge con causa exacta y solución directa, sin rodeos.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Tabla resumen
 &lt;div id="tabla-resumen" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tabla-resumen" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;#&lt;/th&gt;
					&lt;th&gt;Síntoma&lt;/th&gt;
					&lt;th&gt;Causa raíz&lt;/th&gt;
					&lt;th&gt;Solución rápida&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;1&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Failed to change user id to &amp;quot;usuario&amp;quot;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;user=root&lt;/code&gt; en pam conf, freerad no puede hacer setuid&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;user=freerad&lt;/code&gt; + &lt;code&gt;chown freerad /etc/google-authenticator/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;2&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;user not found&lt;/code&gt; / &lt;code&gt;getpwnam() failed&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Winbind sin idmap RID, los usuarios AD no tienen UID Unix&lt;/td&gt;
					&lt;td&gt;Añadir bloques &lt;code&gt;idmap config&lt;/code&gt; en smb.conf + reiniciar winbind&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;3&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Secret file permissions (0644) are more permissive than 0600&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Permisos demasiado abiertos en el fichero TOTP&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;chmod 600 /etc/google-authenticator/*&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;4&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Failed to create tempfile: Permission denied&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Directorio TOTP propiedad de root, freerad no puede escribir&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;chown freerad:freerad /etc/google-authenticator/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;5&lt;/td&gt;
					&lt;td&gt;Contraseñas visibles en el log tras desactivarlas&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;auth_badpass&lt;/code&gt; requiere reinicio, no reload; &lt;code&gt;auth_log&lt;/code&gt; loguea independientemente&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;systemctl restart freeradius&lt;/code&gt; + revisar módulo &lt;code&gt;auth_log&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;6&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;No Auth-Type found: rejecting via Post-Auth-Type = Reject&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;El virtual server no fuerza Auth-Type a PAP para rutas PAM&lt;/td&gt;
					&lt;td&gt;Añadir &lt;code&gt;update control { &amp;amp;Auth-Type := PAP }&lt;/code&gt; en &lt;code&gt;authorize&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;7&lt;/td&gt;
					&lt;td&gt;fail2ban no arranca: &lt;code&gt;Jail 'sshd' is not valid&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;logpath&lt;/code&gt; duplicado en jail.local o jails de servicios inexistentes&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;fail2ban-client -t&lt;/code&gt; + eliminar duplicados y jails inactivos&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;

&lt;h2 class="relative group"&gt;Error 1: &lt;code&gt;Failed to change user id to &amp;quot;usuario&amp;quot;&lt;/code&gt;
 &lt;div id="error-1-failed-to-change-user-id-to-usuario" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#error-1-failed-to-change-user-id-to-usuario" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;Síntoma
 &lt;div id="síntoma" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#s%c3%adntoma" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0) pam: pam_authenticate: Failed to change user id to &amp;#34;usuario&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0) pam: ERROR: PAM auth for user &amp;#34;usuario&amp;#34; failed&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 class="relative group"&gt;Causa
 &lt;div id="causa" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#causa" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;pam_google_authenticator.so&lt;/code&gt; se carga con el parámetro &lt;code&gt;user=root&lt;/code&gt;, lo que obliga a PAM a hacer &lt;code&gt;setuid(root)&lt;/code&gt; antes de leer el fichero TOTP. El proceso &lt;code&gt;freeradius&lt;/code&gt; corre como usuario &lt;code&gt;freerad&lt;/code&gt; y no tiene permiso para asumir la identidad de root.&lt;/p&gt;</description></item></channel></rss>