Estoy tratando de configurar un servidor svn para usar la cuenta del sistema Linux para la autenticación en lugar de un archivo htpasswd independiente. Uso Fedora 16 y seguí este manual para instalar y configurar mod_authnz_external y pwauth, luego configuro /etc/httpd/conf.d/subversion.conf de la siguiente manera:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule authnz_external_module modules/mod_authnz_external.so
AddExternalAuth pwauth /usr/local/libexec/pwauth
SetExternalAuthMethod pwauth pipe
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Subversion repositories PAM"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Location>
Pero no puedo acceder al repositorio, todas las contraseñas son rechazadas. El archivo de registro de Apache muestra el siguiente error:
exec of '/usr/local/libexec/pwauth' failed: (13) Permission denied
[Tue Jan 29 11:23:18 2013] [error] [client ::1] AuthExtern pwauth [/usr/local/libexec /pwauth]: Failed (255) for user tom
[Tue Jan 29 11:23:18 2013] [error] [client ::1] user tom: authentication failure for "/svn/project/trunk": Password Mismatch
¿Qué estoy haciendo mal? Gracias por adelantado.
PD: He intentado pwauth para el usuario apache (sudo -u apache / usr / local / libexec / pwauth) y funciona bien ...
fuente
Detener la aplicación de las políticas de selinux rara vez es una solución. Lo mejor es encontrar el booleano que permitiría al servidor apache ejecutar los comandos necesarios, o en el peor de los casos, definir una nueva política para eso (el audit2allow podría ayudar en este último punto).
El comando 'setenforce permissive' es útil solo para verificar que selinux es el problema mientras se mantienen activos los registros.
Es posible que desee echar un vistazo a los siguientes booleanos: allow_httpd_mod_auth_pam
Creo que también hay uno para la ejecución de los binarios del sistema, pero no puedo encontrarlo.
Para tener una lista de booleanos disponibles: getsebool -a
Para establecer un setsebool booleano dado
fuente
En la página de códigos de estado para pwauth dice:
siguiendo la documentación de mod-auth-external dice:
Parece que no puede ejecutar
pwauth
desde apache, ¿está seguro de que se ha cambiado al usuario correcto en este momento (ya que puede ejecutarlo como apache)fuente