Как бы мне ни хотелось выяснить проблему, на данный момент слишком много времени было потрачено на удаление глупого ключа, когда у меня уже было решение (создание командной строки), которое работает. Я собираюсь удалить пользователя и запустить нужные мне команды. Было бы замечательно получить ответ, но я не думаю, что это произойдет.
У меня есть сеть ведомых, подключенных к buildbot, у каждого из которых есть учетная запись пользователя buildbot. Я хотел бы, чтобы их учетные записи не имели паролей (читай: не пустой пароль). Я сделал это успешно на одном из блоков, как большое следствие удаленного создания пользователя и не установки пароля в процедуре.
Две другие машины OSX, которые я настроил через GUI, имеют пароли, и мне интересно, есть ли способ удалить пароль, не оставляя его пустым. Я просмотрел немного документации для dscl
и passwd
, но у них нет вариантов, которые я ищу. Я мог бы установить их как некоторую случайную строку чисел. Будет ли это так же эффективно? Мое описание эквивалентно наличию пустого пароля и блокировке учетной записи (как в этом обсуждении для Linux)? Если так, как я могу заблокировать учетную запись OSX?
Вторая часть моего вопроса касается способа, которым я изначально создал пользователей. Ниже приведены команды, и они, кажется, работают нормально, но мне интересно, если я пропустил некоторые важные настройки - хотя buildslave запускал и выполнял задания.
sudo dscl . -create /Users/buildbot
sudo dscl . -create /Users/buildbot UserShell /bin/bash
sudo dscl . -create /Users/buildbot RealName "BuildBot"
sudo dscl . -create /Users/buildbot UniqueID <ID>
sudo dscl . -create /Users/buildbot PrimaryGroupID 61
sudo dscl . -create /Users/buildbot NFSHomeDirectory /Users/buildbot
sudo mkdir /Users/buildbot
sudo chown buildbot /Users/buildbot
РЕДАКТИРОВАТЬ: Для машин, которые уже имели учетные записи с паролями, созданными через Системные настройки, команды, предложенные Дэном Блэком, фактически не удаляют ключ пароля,
sudo dscl . -delete /Users/buildbot Password
sudo dscl . -read /Users/buildbot Password
Выход ко второй команде:
Password: *******
Продолжая, как будто пароль был удален, я запускаю
sudo dscl . -create /Users/buildbot Password '*'
su buildbot
И предыдущий пароль получает доступ к учетной записи. Это на OSX 10.5.8 и 10.6.8.
sudo dscl . -change /Users/buildbot Password 'OLDPASS' '*'
su buildbot
Это также не меняет пароль, и OLDPASS может переключать пользователей при запросе пароля.
Вот полный вывод пары ключ-значение для пользователя, у меня возникли проблемы с --created через sys-предпочтения. Чтобы прояснить несоответствие, эта машина использует пользователя 'developer', а не 'buildbot', но все предыдущие команды были выполнены одинаково только с очевидной заменой.
Amoy:~ lyn$ sudo dscl . -read /Users/developer
dsAttrTypeNative:_writers_hint: developer
dsAttrTypeNative:_writers_jpegphoto: developer
dsAttrTypeNative:_writers_LinkedIdentity: developer
dsAttrTypeNative:_writers_passwd: developer
dsAttrTypeNative:_writers_picture: developer
dsAttrTypeNative:_writers_realname: developer
dsAttrTypeNative:_writers_UserCertificate: developer
AppleMetaNodeLocation: /Local/Default
AuthenticationAuthority: ;ShadowHash; ;Kerberosv5;;developer@LKDC:SHA1.08FF6FDC52096FD6C53DEDEE75A2F9315F964B22;LKDC:SHA1.08FF6FDC52096FD6C53DEDEE75A2F9315F964B22;
AuthenticationHint:
developer for auto testing
GeneratedUID: BF95A834-A7F1-4DDD-8DFB-6B80B8120CA7
NFSHomeDirectory: /Users/developer
Password: ********
Picture:
/Library/User Pictures/Fun/Flippers.tif
PrimaryGroupID: 20
RealName: Developer
RecordName: developer
RecordType: dsRecTypeStandard:Users
UniqueID: 512
UserShell: /bin/bash