Як створити облікові записи користувачів з терміналу в Mac OS X 10.11?


23

Я хотів би мати можливість віддалено створювати нових користувачів у Mac OS X 10.11 після того, як втечу в машину. На Гірському Леві ці кроки були перелічені .

Біг

dscl . -create /Users/joeadmin
dscl . -create /Users/joeadmin UserShell /bin/bash
dscl . -create /Users/joeadmin RealName "Joe Admin" 
dscl . -create /Users/joeadmin UniqueID "510"
dscl . -create /Users/joeadmin PrimaryGroupID 20
dscl . -create /Users/joeadmin NFSHomeDirectory /Users/joeadmin
dscl . -passwd /Users/joeadmin password 

dscl . -append /Groups/admin GroupMembership joeadmin

Після вищезазначеного користувач не стає адміністратором. Що далі?


Відповіді:


6

У документації відсутній один важливий крок:

reboot

або

sudo reboot

Після перезавантаження користувач користується видимими правами адміністратора в системних налаштуваннях -> Користувачі та групи.

Але: навіть без перезавантаження користувач буде вже адмін - це просто не видно в PrefPane. Якщо ви ввійдете як joeadmin відразу після створення облікового запису (наприклад, швидка комутація користувачів), роль адміністратора видно з його облікового запису.


Гарна відповідь. Я збирався прокоментувати ОП, щоб запитати, як виглядає обліковий запис не адміністратор, щоб розібратися, як вони користувались користувачем або тестували членство в адміністраторі. Залежно від того, як вони перевіряють, вихід може бути усім необхідним для їх поточного користувача, щоб прочитати нового користувача як адміністратора ...
bmike

13

Якщо ви тут і ваша система працює з 10.10 і новішими версіями, команда sysadminctl - ваш найкращий друг. Це робить багато магії, яку не може зробити DSCL.

Ось вихід для sysadminctl:

sysadminctl[21233:29122637] Usage: sysadminctl
    -deleteUser <user name> [-secure || -keepHome]
    -newPassword <new password> -oldPassword <old password> [-passwordHint <password hint>]
    -resetPasswordFor <local user name> -newPassword <new password> [-passwordHint <password hint>]
    -addUser <user name> [-fullName <full name>] [-UID <user ID>] [-password <user password>] [-hint <user hint>] [-home <full path to home>] [-admin] [-picture <full path to user image>]

Pass '-' instead of password in commands above to request prompt.

Тоді вам захочеться зробити:

sudo createhomedir -c 2>&1 | grep -v "shell-init"

Щоб додати / видалити користувачів, використовуйте dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel

команда sudo createhomedir -c 2>&1 | grep -v "shell-init"також створює папку в /var/setupчистому встановленні
Burcardo

@Burcardo це нормально, поки облікові записи працюють, і користувачі можуть використовувати passwd для зміни власних паролів. Насправді жодна моя машина не мала жодних проблем із створенням цієї папки.
ub3rdud3

4

Після довгих тестувань я зробив цей сценарій для створення облікових записів користувачів з терміналу.

LOCAL_ADMIN_FULLNAME="Joe Admin"     # The local admin user's full name
LOCAL_ADMIN_SHORTNAME="joeadmin"     # The local admin user's shortname
LOCAL_ADMIN_PASSWORD="password"      # The local admin user's password

# Create a local admin user account
sysadminctl -addUser $LOCAL_ADMIN_SHORTNAME -fullName "$LOCAL_ADMIN_FULLNAME" -password "$LOCAL_ADMIN_PASSWORD"  -admin
dscl . create /Users/$LOCAL_ADMIN_SHORTNAME IsHidden 1  # Hides the account (10.10 and above)
mv /Users/$LOCAL_ADMIN_SHORTNAME /var/$LOCAL_ADMIN_SHORTNAME # Moves the admin home folder to /var
dscl . -create /Users/$LOCAL_ADMIN_SHORTNAME NFSHomeDirectory /var/$LOCAL_ADMIN_SHORTNAME # Create new home dir attribute
dscl . -delete "/SharePoints/$LOCAL_ADMIN_FULLNAME's Public Folder" # Removes the public folder sharepoint for the local admin

ви можете позбутися рядка mv / Users / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME # Переміщає домашню папку адміністратора в / var із прапором у вашій команді sysadminctl -home / var / $ LOCAL_ADMIN_SHORTNAME
ub3rdud3

0

PrimaryGroupID потрібно встановити на 80, щоб створити обліковий запис адміністратора.

dscl . -create /Users/joeadmin PrimaryGroupID 80

перегляньте цю тему для отримання додаткової інформації.

Для цього я також написав сценарій. Ось посилання по суті

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.