답변:
다음은 NetInstall 프로세스의 일부로이를 처리하기 위해 직장에서 작성한 셸 스크립트입니다 (이미징 프로세스 중에 로컬 관리자 계정을 자동으로 생성 함).
#!/bin/sh
. /etc/rc.common
dscl . create /Users/administrator
dscl . create /Users/administrator RealName "Administrator Account"
dscl . create /Users/administrator hint "Password Hint"
dscl . create /Users/administrator picture "/Path/To/Picture.png"
dscl . passwd /Users/administrator thisistheaccountpassword
dscl . create /Users/administrator UniqueID 501
dscl . create /Users/administrator PrimaryGroupID 80
dscl . create /Users/administrator UserShell /bin/bash
dscl . create /Users/administrator NFSHomeDirectory /Users/administrator
cp -R /System/Library/User\ Template/English.lproj /Users/administrator
chown -R administrator:staff /Users/administrator
언급 할 몇 가지 참고 사항 :
cp -R ...
; chown -R ...
) 대신 명령을 사용할 수 있습니다 createhomedir -u administrator
. createhomedir
맨 페이지도 있습니다.
위의 답변에 대한 업데이트가 있습니다.
dscl / -append /Groups/admin GroupMembership newUserName
이 명령은 사용자에게 관리 액세스 권한을 부여하는 데 사용할 수 있습니다. 이 명령을 제공하지 않으면 사용자는 자동으로 표준 사용자로 설정됩니다.
dscl . create /Users/newUserName PrimaryGroupID 80
사용자의 기본 그룹 ID를 설정합니다. 80은 관리자를 의미 하고 20은 직원을 의미 합니다. 그리고 20으로 설정하면 사용자 표준이되지 않습니다. 첫 번째 명령이 언급되지 않는 한.
다음은 명령 행을 사용하여 Max OS X에서 새 사용자를 추가하기 위해 작성한 쉘 스크립트입니다. 마치 리눅스와 동일하게 작동합니다. 개인적인 필요에 따라 자유롭게 편집하십시오. useradd.sh라는 이름을 지정하고 올바른 권한을 설정하십시오 ( chmod 0700 useradd.sh
필자의 경우). bispymusic, Alex Leach, Kent 에게 감사의 말을 전 합니다.
OS X High Sierra 테스트
#!/bin/sh
if [[ `id -u` != 0 ]]; then
echo "Must be root to run script"
exit
fi
read -p "Enter user name and press [ENTER]: " UserName
if [[ $UserName == `dscl . -list /Users UniqueID | awk '{print $1}' | grep -w $UserName` ]]; then
echo "User already exists!"
exit 0
fi
read -p "Enter real name and press [ENTER]: " RealName
read -p "Enter PrimaryGroupID (80 - admin, 20 - user) and press [ENTER]: " PrimaryGroupID
LastID=`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1`
NextID=$((LastID + 1))
. /etc/rc.common
dscl . create /Users/$UserName
dscl . create /Users/$UserName RealName $RealName
read -p "Enter password hint and press [ENTER]: " PasswordHint
dscl . create /Users/$UserName hint $PasswordHint
PasswordHint=0
echo " "
read -s -p "Enter Account Password and press [ENTER]: " AccountPassword
echo " "
read -s -p "Enter Account Password again and press [ENTER]: " AccountPasswordRepeat
if [[ $AccountPassword == $AccountPasswordRepeat ]]; then
dscl . passwd /Users/$UserName $AccountPassword
AccountPassword=0
else
echo "Passwords do not match!"
exit 1
fi
echo " "
dscl . create /Users/$UserName UniqueID $NextID
dscl . create /Users/$UserName PrimaryGroupID $PrimaryGroupID
dscl . create /Users/$UserName UserShell /bin/bash
dscl . create /Users/$UserName NFSHomeDirectory /Users/$UserName
createhomedir -u $UserName -c
echo " "
echo "New user `dscl . -list /Users UniqueID | awk '{print $1}' | grep -w $UserName` has been created with unique ID `dscl . -list /Users UniqueID | grep -w $UserName | awk '{print $2}'`"
내 요지 에서 같은 것을 얻을 수 있습니다
NextID=$((`dscl . -list /Users UniqueID | awk '{print $2}' | sort -n | tail -1` + 1))
있지만 현재와 같은 방식으로 개선되었습니다.