ターミナルmacOS 10.14で新しいユーザーを作成するにはどうすればよいですか


2

ユーザーをコンピューターに追加するスクリプトを作成しようとしています。これらは管理者アカウントではなく、スタッフアカウントである必要があります。次のスクリプトを実行し、アカウントにログインできますが、ファイルにアクセスしたり、ファイルを作成したり、コンピューターにファイルを保存したりできません。

最終的に、これを実行して5つのユーザーアカウントとそれらのすべての情報を削除し、5つの新しいアカウントを作成します(これは36台のコンピューターがある教室にあります)が、次のスクリプトを使用して1人のユーザーを正しく作成するのに苦労しています。

どんな助けでも大歓迎です。

#!/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

John Vincentsの回答は、スクリプトを介してユーザーを作成できるため、非常に便利です...

ユーザーのFileVaultをアクティブ化する予定がある場合は、新しいユーザーのsecureTokenステータスの作成も考慮する必要があります。

SecureTokenに関するさらに重要な情報:https ://derflounder.wordpress.com/2018/01/20/secure-token-and-filevault-on-apple-file-system/

rootで次を使用してsecureTokenを追加できます。

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

この方法でsecureTokenステータスを確認できます。

sysadminctl -secureTokenStatus username_goes_here
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.