Як я можу створити нового користувача через термінал macOS 10.14


2

Я намагаюся написати сценарій, щоб додати користувача до комп'ютера. Це не будуть адміністраторські рахунки, а вони повинні бути обліковими записами персоналу. Я запустив наступний скрипт і можу увійти до акаунта, але я не можу отримати доступ до жодних файлів, створювати будь-які файли або зберігати будь-які файли на комп’ютері.

Зрештою, я хотів би запустити це, щоб видалити 5 облікових записів користувачів та всю їх інформацію, а потім створити 5 нових облікових записів (це в класі, де у мене 36 комп’ютерів), але я намагаюся створити єдиного користувача правильно із наступним сценарієм.

Будь-яка допомога буде дуже вдячна.

#!/bin/bash

USERNAME=per1
FULLNAME="Period 1"
PASSWORD="test"
SECONDARY_GROUPS="staff" 

# ====

if [[ $UID -ne 0 ]]; then echo "Please run $0 as root." && exit 1; fi

# Find out the next available user ID
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))

# Create the user account
dscl . -create /Users/$USERNAME
dscl . -create /Users/$USERNAME UserShell /bin/bash
dscl . -create /Users/$USERNAME RealName "$FULLNAME"
dscl . -create /Users/$USERNAME UniqueID "$USERID"
dscl . -create /Users/$USERNAME PrimaryGroupID 20
dscl . -create /Users/$USERNAME NFSHomeDirectory /Users/$USERNAME

dscl . -passwd /Users/$USERNAME $PASSWORD


# Add use to any specified groups
for GROUP in $SECONDARY_GROUPS ; do
    dseditgroup -o edit -t user -a $USERNAME $GROUP
done

# Create the home directory
createhomedir -c > /dev/null

echo "Created user #$USERID: $USERNAME ($FULLNAME)"

Де / як саме сценарій не робить те, що ви хочете?
nohillside

Це створює користувача, але я вважаю, що існує проблема зі створенням домашнього каталогу. Можливо, питання про дозвіл. Наприклад, я не можу переглянути жодну папку в пошуку.
Джон Вінсент

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

Ну, не розглядаючи все докладно: Як ви розраховуєте createhomedirзнати, для якого користувача він повинен створити домашній каталог?
nohillside

Дякую! Я додав користувача, і сценарій працює зараз
Джон Вінсент

Відповіді:


3
#!/bin/bash

USERNAME=per1
FULLNAME="Period 1"
PASSWORD="test"
SECONDARY_GROUPS="staff" 

# ====

if [[ $UID -ne 0 ]]; then echo "Please run $0 as root." && exit 1; fi

# Find out the next available user ID
MAXID=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
USERID=$((MAXID+1))

# Create the user account
dscl . -create /Users/$USERNAME
dscl . -create /Users/$USERNAME UserShell /bin/bash
dscl . -create /Users/$USERNAME RealName "$FULLNAME"
dscl . -create /Users/$USERNAME UniqueID "$USERID"
dscl . -create /Users/$USERNAME PrimaryGroupID 20
dscl . -create /Users/$USERNAME NFSHomeDirectory /Users/$USERNAME

dscl . -passwd /Users/$USERNAME $PASSWORD


# Add use to any specified groups
for GROUP in $SECONDARY_GROUPS ; do
    dseditgroup -o edit -t user -a $USERNAME $GROUP
done

# Create the home directory
createhomedir -c -u $USERNAME > /dev/null

echo "Created user #$USERID: $USERNAME ($FULLNAME)"

0

Відповідь Джона Вінсенса дуже корисна, оскільки може створити користувача для вас за допомогою сценарію ...

Ви також захочете розглянути можливість створення статусу secureToken для нового користувача, якщо ви плануєте активувати FileVault для користувача.

Ще кілька важливих відомостей щодо SecureToken: https://derflounder.wordpress.com/2018/01/20/secure-token-and-filevault-on-apple-file-system/

Ви можете додати secureToken, скориставшись вказаними нижче корінцями:

sysadminctl -adminUser root -adminPassword <rootPassword> -secureTokenOn <user> -password <userPassword>

Ви можете перевірити статус secureToken таким чином:

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