macOSのテンプレートを使用してコマンドラインからユーザーを作成する

macOSのテンプレートを使用してコマンドラインからユーザーを作成する

macOS High SierraおよびMojaveでコマンドライン(またはシェルスクリプトを使用)からユーザーを作成したいと思います。ユーザーアカウントはユーザーテンプレートのコピーである必要があります。テンプレートを作成するには、/System/Library/User Template/フォルダに変更を加えました。

ユーザーを手動で作成すると、テンプレートは機能します。ただし、既存のシェル スクリプトを使用してユーザーを作成すると、テンプレートの設定は無視されます。

ユーザーアカウントを作成するために使用されるコードは次のとおりです

#!/bin/bash

if [ $# -ne 3 ]; then
echo "Only 3 Arguments allowed"
else

account=$1
password=$2
uid=$3

username=$account
realname=$account
usershell=/bin/bash
uniqueid=$uid
primarygroupid=20
passwd=$password
pic="/Library/User Pictures/Fun/Chalk.tif"

upath="/Users/${username}"

echo "Create User ${upath}? (Y) to go on ..."
read yes

if [ "$yes" == Y ]; then

    dscl . create $upath
    dscl . create $upath UserShell $usershell
    dscl . create $upath RealName "${realname}"
    dscl . create $upath UniqueID $uniqueid
    dscl . create $upath PrimaryGroupID $primarygroupid
    dscl . create $upath NFSHomeDirectory $upath
    dscl . passwd $upath $passwd
    dscl . create $upath picture "${pic}"

else
    echo "Nothing created"
fi
fi

何かできることはありますか? ユーザー アカウントを作成するための dscl の代替手段はありますか? よく知られている Linux コマンド adduser はここには存在しません。

パトリック

関連情報