1 votos

El usuario de Mac OS X Server no puede cambiar la contraseña

Tengo usuarios que no son administradores que necesitan cambiar su contraseña. Aparentemente, el comando passwd está limitado a administradores.

En el sitio web del servidor, hay un enlace para cambiar la contraseña, pero no funciona y los usuarios reciben un error. Internamente, Mac OS X registra el siguiente mensaje:

Jan 21 01:56:02 domain.com collabd[247]: [CSAuthService.m:506 ab93000 +206ms] No se pudo cambiar la contraseña del usuario 1234 con el error Error Domain=com.apple.OpenDirectory Code=4001 "La operación fue denegada porque las credenciales actuales no tienen los privilegios adecuados." UserInfo=0x1234567890abc {NSLocalizedDescription=La operación fue denegada porque las credenciales actuales no tienen los privilegios adecuados., NSLocalizedFailureReason=La operación fue denegada porque las credenciales actuales no tienen los privilegios adecuados.}

Tengo marcada la opción en el servicio del sitio web para permitir cambiar contraseñas. ¿Qué podría estar causando este error?

EDICIÓN: Los usuarios creados con la aplicación del servidor funcionan bien, pero el problema está con los usuarios creados con dscl en la línea de comandos. Aquí están los comandos exactos utilizados para crear un usuario de prueba llamado "qwer":

sudo dscl . create /Users/qwer UniqueID 507
sudo dscl . create /Users/qwer PrimaryGroupID 20
sudo dscl . create /Users/qwer UserShell /bin/bash
sudo dscl . create /Users/qwer NFSHomeDirectory /Users/qwer
sudo mkdir /Users/qwer
sudo chown qwer:staff /Users/qwer
sudo passwd qwer

Luego ejecuté sudo dscl . read /Users/qwer y lo comparé con sudo dscl . read /Users/uiop para un segundo usuario de prueba.

En los registros, las siguientes claves son únicas para el usuario creado con la aplicación del servidor:

dsAttrTypeNative:_writers_hint
dsAttrTypeNative:_writers_jpegphoto
dsAttrTypeNative:_writers_passwd
dsAttrTypeNative:_writers_picture
dsAttrTypeNative:_writers_realname
LastName
RealName

Estas coinciden:

AppleMetaNodeLocation
PasswordPolicyOptions
PrimaryGroupID
RecordType
UserShell

Y estas son únicas para cada usuario (o en el caso de Password están enmascaradas):

dsAttrTypeNative:KerberosKeys
dsAttrTypeNative:ShadowHashData
AuthenticationAuthority
GeneratedUID
GeneratedUID
NFSHomeDirectory
RecordName
UniqueID
Password

Revisé AuthenticationAuthority pero lo único diferente es el nombre de usuario en la cadena, por lo que también podría considerarse equivalente.

Además, groups qwer y groups uiop dan exactamente la misma salida.

No parece haber nada que impida que "qwer" cambie su contraseña excepto el hecho de que su cuenta de usuario fue creada en la línea de comandos; sin embargo, el método dscl debería ser perfectamente válido.

2voto

Kent Puntos 3462

Según este antiguo artículo (10.3!), la falta de una propiedad _writers_password en la base de datos NetInfo evitaría que los usuarios cambien su contraseña. Eso está muy desactualizado, pero parece un lugar razonable para empezar.

http://support.apple.com/kb/TA21256

(Editar)

De algunas otras fuentes (tan lejanas como "Ejecutando Mac OS X Tiger" página 136) parece que _writers_passwd es una lista de usuarios que pueden cambiar la contraseña de ese usuario en particular. Por lo tanto, establecerlo como el nombre de usuario debería ser suficiente.

0 votos

Eso es exactamente. Ni siquiera vi eso ... estaba pensando que era para la imagen pero aparentemente me perdí la contraseña. Parece que esos deberían ser agregados a cualquier script que cree usuarios si necesitan poder cambiar su propia contraseña.

0 votos

Por cierto, ¿estás en el servidor 10.9? Utilizo un script similar al de todos los demás (sin _writers_passwd) en los servidores 10.5, 10.6 y 10.8, y no he tenido ningún problema.

0 votos

Sí, 10.9, y estoy de acuerdo, creo que puede ser nuevo en esta versión porque lo he hecho en servidores anteriores sin problemas. Es hora de actualizar los scripts, probablemente con cada uno de los elementos _writers_*, sólo para estar seguro. Me pregunto si 10.5-10.8 realmente lo hicieron mal e ignoraron esos valores, y en 10.9 "restauraron" el comportamiento correcto. Explicaría por qué a nadie parece importarle estas claves al crear usuarios a pesar de que la documentación antigua lo menciona.

1voto

Tony Williams Puntos 4903

En primer lugar, el comando passwd no requiere acceso de administrador para cambiar tu propia contraseña.

Creo que tienes un problema con el certificado. Echa un vistazo en el panel de Certificate de la aplicación del Servidor y verifica que todos tus certificados siguen siendo válidos y que no hay ninguna advertencia sobre algún servicio que no esté utilizando un certificado en el panel inferior. Parece que el servidor web no está permitiendo hacer el cambio de contraseña por alguna razón.

También podrías ir a /Library/Server/Wiki/Config y ejecutar plutil en todos los archivos plist para asegurarte de que no haya nada demasiado mal allí. También revisaría que todos los permisos de los archivos parezcan estar bien.

¿Recibes el mismo error tanto para usuarios estándar como para administradores? ¿Puede un usuario administrador iniciar sesión con éxito en Profile Manager?

0 votos

El servidor está usando un certificado autofirmado, y no está vencido. No estoy seguro de qué tendría que ver esto con el comando passwd, sin embargo. Según este artículo, el comando passwd está restringido a los administradores. Aunque no estoy seguro por qué.

0 votos

Comprobando en el Servidor 10.8 y en una máquina 10.9, el passwd funciona bien tanto para usuarios estándar como administradores para cambiar su propia contraseña.

0 votos

Ver información adicional incluida en la pregunta. Parece que crear usuarios en la línea de comandos es diferente, pero no estoy seguro de cómo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X