Користувач Mac OS X Server не може змінити пароль


1

У мене є не-адміністратори, яким потрібно змінити свій пароль. passwdКоманда , очевидно , обмежена адміністраторами.

На веб-сайті сервера є посилання зміни пароля, але воно не працює, і користувачі отримують помилку. Внутрішньо Mac OS X записує таке повідомлення:

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.}

У мене в сервісі веб-сайтів є можливість перевірити можливість дозволу зміни паролів. Що було б причиною цієї помилки?

EDIT: Користувачі , створені з допомогою програми сервера відмінно, але біда з користувачами , створених з dsclкомандного рядка . Ось точні команди, які використовуються для створення тестового користувача під назвою "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

Потім я виконав sudo dscl . read /Users/qwerі порівняв його з sudo dscl . read /Users/uiopдругим користувачем тесту.

У записах такі ключі є унікальними для користувача, створеного за допомогою програми Сервер:

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

Ці збіги:

AppleMetaNodeLocation
PasswordPolicyOptions
PrimaryGroupID
RecordType
UserShell

І вони унікальні для кожного користувача (або у випадку, якщо пароль затуманений):

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

Я перевірив AuthenticationAuthority, але єдине, що відрізняється, - це ім'я користувача в рядку, і це також може вважатися еквівалентним.

Додатково groups qwerі groups uiopдайте точно такий же вихід.

Здається, нічого не заважає "qwer" змінювати свій пароль, за винятком того, що їх командний обліковий запис створено в командному рядку; однак метод dscl повинен бути абсолютно дійсним.

Відповіді:


2

Відповідно до цієї старої статті (10.3!), Відсутність _writers_passwordвластивості в базі даних NetInfo заважатиме користувачам змінювати свій пароль. Це справді застаріло, але здається, що розумне місце для початку.

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

(Редагувати)

З деяких інших джерел (що стосується " Запуск Mac OS X Tiger ", стор. 136), схоже _writers_passwd, це список користувачів, які можуть змінити пароль конкретного користувача. Отже, встановлення його на ім’я користувача повинно бути достатнім.


Саме так. Я навіть цього не бачив ... Я думав, що вони за картину, але я, мабуть, пропустив пасивний. Схоже, їх слід додати до будь-якого сценарію, який створює користувачів, якщо їм потрібно мати змогу змінити власний пароль.
Джастін Мрква

До речі, ти на сервері 10,9? Я використовую аналогічний сценарій, як і всі інші (без _writers_passwd) на серверах 10.5, 10.6 та 10.8, і жодних проблем не виникало.
Кент

Так, 10,9, і я погоджуюся, я думаю, що це може бути новим для цієї версії, тому що я це робив на минулих серверах без проблем. Час для оновлення сценаріїв, мабуть, з кожним із _writers_*пунктів, просто для безпеки. Цікаво, чи 10.5-10.8 насправді помилився і проігнорував ці значення, а 10.9 вони "відновили" належну поведінку. Це пояснило б, чому, здається, ніхто не переймається цими ключами під час створення користувачів, незважаючи на стару документацію, в якій згадується.
Джастін Мрква

1
І якщо чесно, чи дійсно зашкодить Apple надати useraddта groupaddеквіваленти, які належним чином поводяться з ним? Відстеження всіх правильних клавіш для оновлення сценарію є своєрідним вигадливим рішенням, оскільки пропущення чогось незрозумілого на кшталт цього може призвести до таких складних, важких для відстеження помилок. :) Що ж, добре.
Джастін Мрква

1

По-перше, passwdкоманда не потребує доступу адміністратора для зміни власного пароля.

Я думаю, у вас проблема з сертифікатом. Перегляньте на Certificateпанелі програми Сервер та перевірте, чи всі ваші сертифікати все ще дійсні та чи немає попередження про те, що служба не використовує сертифікат на нижній панелі. Схоже, веб-серверу чомусь заборонено вносити зміни до пароля.

Ви також можете зайти /Library/Server/Wiki/Configі запустити plutil на всі файли плістів, щоб переконатися, що там нічого не так. Я також перевірив би, чи всі дозволи на файл виглядають здоровими.

Ви отримуєте однакову помилку як для стандартних, так і для адміністраторів? Чи може користувач адміністратора успішно зареєструватися Profile Manager?


Сервер використовує самопідписаний сертифікат, і він не закінчився. Я не впевнений, що це стосується passwdкоманди, хоча. Згідно цієї статтіpasswd команда обмежується адмінів. Я не впевнений, чому.
Джастін Мрква

Перевірка на сервері 10.8 та на машині 10.9 passwdпрацює чудово і для стандартних, і для адміністраторів, щоб змінити власний пароль.
Тоні Вільямс

Див. Додаткову інформацію, що міститься у запитанні. Схоже, створення користувачів у командному рядку відрізняється, але я не знаю як.
Джастін Мрква

Тож справжнє питання - як створити користувача з командного рядка. Дайте мені кілька годин, щоб перевірити свої старі сценарії.
Тоні Вільямс

Не зовсім ... Я можу створювати користувачів з командного рядка, і кроки відповідають одній із десятків статей з цього питання. Але щось не вистачає, що заважає passwdпрацювати. Якщо ваш сценарій робить щось інше, мене цікавить, що це таке, щоб я міг перетворити його на своє. :)
Джастін Мрква
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.