Я пытаюсь написать скрипт для добавления пользователя на компьютер. Это не будут учетные записи администратора, это должны быть учетные записи персонала. Я запустил следующий сценарий и могу войти в учетную запись, но не могу получить доступ к каким-либо файлам, создать какие-либо файлы или сохранить какие-либо файлы на компьютере.
В конечном счете, я хотел бы запустить это, чтобы удалить 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)"
#!/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)"
-u $USERNAME
к createhomedir
команде.Ответ Джона Винсента очень полезен, так как он может создать для вас пользователя с помощью скрипта...
Вы также захотите рассмотреть возможность создания статуса secureToken для нового пользователя, если вы планируете активировать FileVault для пользователя.
Еще немного важной информации о SecureToken: https://derflounder.wordpress.com/2018/01/20/secure-token-and-filevault-on-apple-file-system/
Вы можете добавить secureToken с помощью root:
sysadminctl -adminUser root -adminPassword <rootPassword> -secureTokenOn <user> -password <userPassword>
Вы можете проверить статус secureToken следующим образом:
sysadminctl -secureTokenStatus username_goes_here
без холма
Джон Винсент
Джон Винсент
без холма
createhomedir
узнать, для какого пользователя он должен создать домашний каталог?Джон Винсент
Гордон Дэвиссон
staff
в качестве вторичной группы, так как она уже настроена как основная группа пользователей (персонал — это группа №20). Кроме того, я рекомендую использовать нижний или смешанный регистр для вашей оболочки и переменных среды, поскольку существует множество переменных, написанных заглавными буквами (например, , , и т. д.), которые имеют$PATH
особое$USER
значение$UID
, и если вы случайно повторно используете одну из них для чего-то в противном случае это может вызвать проблемы.