it-swarm-tr.com

Mac OS X 10.5'te Terminal'den kullanıcı hesapları nasıl oluştururum?

Makineye ssh olduktan sonra Mac OS X 10.5'te uzaktan yeni kullanıcılar oluşturabilmek istiyorum. Bunu nasıl yaparım?

87
JR Lawhorne

Dscl komutunu kullanın. Bu örnek "luser" kullanıcısını şu şekilde oluşturacaktır:

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

Daha sonra kullanıcının parolasını değiştirmek için passwd komutunu kullanabilir veya aşağıdakileri kullanabilirsiniz:

dscl . -passwd /Users/luser password

Kullanıcının giriş dizini için/Users/luser oluşturmanız ve kullanıcının ona erişebilmesi için sahipliği değiştirmeniz ve UniqueID'nin gerçekten benzersiz olduğundan emin olmanız gerekir.

Bu satır kullanıcıyı yönetici grubuna ekler:

dscl . -append /Groups/admin GroupMembership luser
80
palmer

(Bu cevap, palmer prosedüründeki bazı boşlukları doldurmak için bir ek olarak düşünülmelidir)

Yeni kullanıcınız için kullanılmayan bir UniqueID seçmek için aşağıdakileri kullanabilirsiniz:

maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))

... ardından palmer'in hesabı oluşturmak için verdiği dscl komutlarının sırasını kullanın ve ardından yeni kullanıcının ana dizinini şu şekilde oluşturun:

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 komutu var, ancak test ettiğimde işe yaramadı.)

20
Gordon Davisson

Oluşturulacak çok sayıda kullanıcınız varsa, yapılandırılmış bir metin dosyası oluşturmak ve işi yapmak için dsimport öğesine iletmek mümkündür.

Apple'ın Komut Satırı Yönetimi Guide'da kullanıcılar ve gruplar hakkında eksiksiz bir bölüm vardır.

8

Bir hesap oluşturmadan önce benzersiz bir kullanıcı kimliği seçmenin ve seçmenin başka bir yolu, sadece listeye bakmak ve kullanmak istediğiniz kişinin orada olup olmadığını kontrol etmektir:

 Sudo dscl . list /Users uid
 Sudo dscl . list groups gid

Belirli bir kimlik kullanmanız gerekiyorsa kullanışlı

7
Kevin McDonagh

Kullanıcı hesapları oluşturmak için güzel bir komut dosyası olduğunu düşündüğüm şeyleri bulmak için burada farklı yanıtları kullandım. Kuşkusuz, bu bir seferde ssh'den bir komut çalıştırmak için tasarlanmamıştır; OS X'in paket tabanlı bir görüntüsünü derlerken ( Casper Imaging veya InstaDMG ) oluşturulduğu gibi bir komut dosyası çalışması için tasarlanmış moreso'dur.

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

Komut dosyası, bir kullanıcının hangi gruplara ait olması gerektiğini belirtmenize izin verir. Bana öyle geliyor ki, çalıştırdığınız OS X sürümüne bağlı olarak değişebilir. id i OS X 10.6'da yönetici olarak çalıştırdığımda, OS X 10.5'te yönetici olarak çalıştırdığımdan farklı sonuçlar alıyorum.

7

Başladım biraz sarıcıdscl hakkında useradd 'nin parametrelerini alır - tamamlanmamıştır (OS X'de bazı şeyler mümkün olmadığından, ne olabileceğini de düşünmüyorum) ), ancak bazı kullanıcı oluşturma işlemleri için kullandım.

Çerçeve tüm parametreler için var, bu yüzden GitHub'ın harika sosyal özelliklerinden yararlanmak istiyorsanız, bunu yapmak kolaydır.