답변:
dscl 명령을 사용하십시오. 이 예제는 다음과 같이 "luser"사용자를 작성합니다.
dscl . -create /Users/luser
dscl . -create /Users/luser UserShell /bin/bash
dscl . -create /Users/luser RealName "Lucius Q. User"
dscl . -create /Users/luser UniqueID "1010"
dscl . -create /Users/luser PrimaryGroupID 80
dscl . -create /Users/luser NFSHomeDirectory /Users/luser
그런 다음 passwd를 사용하여 사용자 비밀번호를 변경하거나 다음을 사용할 수 있습니다.
dscl . -passwd /Users/luser password
사용자의 홈 디렉토리에 대해 / Users / luser를 작성하고 사용자가 디렉토리에 액세스 할 수 있도록 소유권을 변경하고 UniqueID가 실제로 고유한지 확인해야합니다.
이 줄은 사용자를 관리자 그룹에 추가합니다.
dscl . -append /Groups/admin GroupMembership luser
useradd
.
PrimaryGroupID 80
입니다 admin
, 그래서 luser
사용할 수 있습니다 sudo
당신은 관리자의 그룹에 그를 추가 할 경우에도.
(이 답변은 팔머의 절차에서 일부 공백을 채우는 부록으로 간주되어야합니다)
새 사용자를 위해 사용하지 않는 UniqueID를 선택하려면 다음을 사용할 수 있습니다.
maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))
... 그런 다음 palmer가 제공 한 dscl 명령 시퀀스를 사용하여 계정을 작성한 후 다음을 사용하여 새 사용자의 홈 디렉토리를 작성하십시오.
cp -R /System/Library/User\ Template/English.lproj /Users/luser
chown -R luser:staff /Users/luser
if [[ "$(sw_vers -productVersion)" != 10.[0-5].* ]]; then
# Set ACL on Drop Box in 10.6 and later
chmod +a "user:luser allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" /Users/luser/Public/Drop\ Box
fi
(createhomedir 명령이 있지만 테스트 할 때 작동하지 않았습니다.)
sudo createhomedir -s
Open Directory Replicas / Fileshares에서 (IIRC) 를 호출하는 스크립트를 작성하여 행복하게 홈 디렉토리를 작성했습니다.
dscl -list
256 개 결과로 제한되므로 256 명 이상의 사용자가있는 경우이 기술은 고유 한 UID를 보장하지 못합니다.
계정을 만들기 전에 고유 한 사용자 ID를 선택하고 선택하는 다른 방법은 목록을 살펴보고 사용하려는 ID가 없는지 확인하는 것입니다.
sudo dscl . list /Users uid
sudo dscl . list groups gid
특정 ID를 사용해야하는 경우 편리
dscl -list
256 개 결과로 제한되므로 256 명 이상의 사용자가있는 경우이 기술은 고유 한 UID를 보장하지 못합니다.
grep
와 함께 id
새 사용자에 사용할 생각했던
여기에 다른 답변을 활용하여 사용자 계정을 만드는 훌륭한 스크립트라고 생각하는 것을 생각해 냈습니다. 분명히 이것은 ssh에서 한 번에 명령을 실행하도록 설계되지 않았습니다. 또한 Casper Imaging 또는 InstaDMG에서 만든 OS X의 패키지 기반 이미지를 컴파일 할 때 스크립트를 실행하도록 설계되었습니다 .
#!/bin/bash
# This script creates a user account under Mac OS X
# (tested with 10.5 and 10.6; likely works with 10.4 but not earlier)
# Written by Clinton Blackmore, based on work at
# http://serverfault.com/questions/20702
# === Typically, this is all you need to edit ===
USERNAME=joeadmin
FULLNAME="Joe Admin"
PASSWORD="hard_to_hack"
# A list of (secondary) groups the user should belong to
# This makes the difference between admin and non-admin users.
# Leave only one uncommented
#SECONDARY_GROUPS="" # for a non-admin user
SECONDARY_GROUPS="admin _lpadmin _appserveradm _appserverusr" # for an admin user
# ====
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)"
스크립트를 통해 사용자가 속한 그룹을 지정할 수 있습니다. 실행중인 OS X 버전에 따라 다를 수 있습니다. id
OS X 10.6에서 관리자로 실행할 때 OS X 10.5에서 관리자로 실행할 때와 다른 결과가 나타납니다 .
dscl -list
256 개 결과로 제한되므로 256 명 이상의 사용자가있는 경우이 기술은 고유 한 UID를 보장하지 못합니다.
나는 시작 약간의 래퍼 에 대해 dscl
그 소요 useradd
가 완료되지이다 (도 내가 몇 가지의 OS X에 불가능으로는 될 수 있다고 생각 할),하지만 일부 사용자 생성을 수행하는 데 사용되는 -의 매개 변수를.
프레임 워크에는 모든 매개 변수가 있으므로 GitHub의 멋진 소셜 기능을 활용하려면 쉽게 수행 할 수 있습니다.
single_user
모드 (보안 재설정) 에서이 작업을 수행하는 방법을 찾고 있다면를 누른 채로 재부팅해야합니다.Command-S
화면 세부 정보에 따라 디스크에 대한 쓰기 권한을 얻습니다. 그런 다음rm /var/db/.AppleSetupDone
새 관리자 계정을 만들 수 있습니다. 이것이 누군가