Tengo usuarios no administradores que necesitan cambiar su contraseña. El comando passwd
está aparentemente limitado a los 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] Could not change password for user 1234 with error Error Domain=com.apple.OpenDirectory Code=4001 "Operation was denied because the current credentials do not have the appropriate privileges." UserInfo=0x1234567890abc {NSLocalizedDescription=Operation was denied because the current credentials do not have the appropriate privileges., NSLocalizedFailureReason=Operation was denied because the current credentials do not have the appropriate privileges.}
Tengo la opción en el servicio del sitio web verificada para permitir el cambio de contraseñas. ¿Qué estaría causando este error?
EDITAR: los usuarios creados con la aplicación Servidor están bien, pero el problema es que los usuarios creados con dscl
en la línea de comandos . Estos son 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 Servidor:
dsAttrTypeNative:_writers_hint
dsAttrTypeNative:_writers_jpegphoto
dsAttrTypeNative:_writers_passwd
dsAttrTypeNative:_writers_picture
dsAttrTypeNative:_writers_realname
dsAttrTypeNative:_writers_UserCertificate
LastName
RealName
Estos coinciden:
AppleMetaNodeLocation
PasswordPolicyOptions
PrimaryGroupID
RecordType
UserShell
Y estos son únicos para cada usuario (o en el caso de la Contraseña están ofuscados):
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 por el hecho de que su cuenta de usuario se creó en la línea de comandos; sin embargo, el método dscl debería ser perfectamente válido.