Ho utenti non amministratori che hanno bisogno di cambiare la loro password. Il comando passwd
è apparentemente limitato agli amministratori.
Sul sito Web del server, c'è un link per la modifica della password, ma non funziona e gli utenti ricevono un errore. Internamente, Mac OS X registra il seguente messaggio:
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.}
Ho selezionato l'opzione nel servizio sito Web per consentire la modifica delle password. Quale sarebbe la causa di questo errore?
EDIT: gli utenti creati con l'app Server vanno bene, ma il problema è con gli utenti creati con dscl
sulla riga di comando . Ecco i comandi esatti usati per creare un utente di prova chiamato "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
Ho quindi eseguito sudo dscl . read /Users/qwer
e l'ho confrontato con sudo dscl . read /Users/uiop
per un secondo utente di test.
Nei record, i seguenti tasti sono univoci per l'utente creato con l'app Server:
dsAttrTypeNative:_writers_hint
dsAttrTypeNative:_writers_jpegphoto
dsAttrTypeNative:_writers_passwd
dsAttrTypeNative:_writers_picture
dsAttrTypeNative:_writers_realname
dsAttrTypeNative:_writers_UserCertificate
LastName
RealName
Corrispondono a:
AppleMetaNodeLocation
PasswordPolicyOptions
PrimaryGroupID
RecordType
UserShell
E questi sono unici per ogni utente (o nel caso di Password sono offuscati):
dsAttrTypeNative:KerberosKeys
dsAttrTypeNative:ShadowHashData
AuthenticationAuthority
GeneratedUID
GeneratedUID
NFSHomeDirectory
RecordName
UniqueID
Password
Ho controllato AuthenticationAuthority ma l'unica cosa diversa è il nome utente nella stringa, quindi potrebbe essere considerato equivalente.
Inoltre, groups qwer
e groups uiop
danno esattamente lo stesso risultato.
Sembra che non ci sia nulla che impedisca a "qwer" di cambiare la loro password, tranne per il fatto che il loro account utente è stato creato sulla riga di comando; tuttavia, il metodo dscl dovrebbe essere perfettamente valido.