コマンドラインを使用して OSX のユーザーデータを変更する方法

コマンドラインを使用して OSX のユーザーデータを変更する方法

OSX 10.13.3 でユーザー アカウント データ (GeneratedUID や UID など) を変更しようとしています。

ディレクトリユーティリティを使用すると、任意の値を変更して保存できます。ディレクトリユーティリティは何らかのデータベースファイルまたはplistファイルを使用していると確信しており、コマンドを使用して対応する値を変更することもできると思います。たとえば、dscl . -changeコマンドですが、そのコマンドがどこを指すべきかに関する関連情報が見つからないようです。

ここに画像の説明を入力してください

私は使用すべきだと思います

dscl .    -change record_path key old_val new_val

しかし、record_pathここには何があるのでしょうか? ディレクトリ ユーティリティが使用するファイルの名前を知っている人はいますか? または、dscl コマンドを使用してアカウント GUID を変更する方法も知っていますか?

答え1

record_path通常は/Users/<username>

たとえば、ユーザー「david」のUniqueIDを511から503に変更するには

dscl . -change /Users/david UniqueID 511 503

PrimaryGroupIDを1000から1003に変更する

dscl . -change /Users/david PrimaryGroupID 1000 1003

この情報の plist ファイルはここに保存されます:-

/private/var/db/dslocal/nodes/Default/users

関連情報