Makineye girdikten sonra Mac OS X 10.5'te uzaktan yeni kullanıcılar oluşturabilmek istiyorum. Bunu nasıl yaparım?
Makineye girdikten sonra Mac OS X 10.5'te uzaktan yeni kullanıcılar oluşturabilmek istiyorum. Bunu nasıl yaparım?
Yanıtlar:
Dscl komutunu kullanın. Bu örnek, "luser" kullanıcısını şöyle yaratı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
Kullanıcı şifresini değiştirmek için passwd tuşunu kullanabilir veya 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ğini değiştirmeniz ve UniqueID'nin gerçekten benzersiz olduğundan emin olmanız gerekir.
Bu satır kullanıcıyı yönetici grubuna ekleyecektir:
dscl . -append /Groups/admin GroupMembership luser
useradd
sözdizimi.
PrimaryGroupID 80
olduğu admin
, bu nedenle luser
kullanabilirsiniz sudo
sen yöneticilerin grubunun onu eklemek değilse bile.
(Bu cevap, palmer'ın prosedüründeki bazı boşlukları doldurmak için bir zeyilname olarak kabul edilmelidir)
Kullanılmayan bir UniqueID'yi sizin için yeni bir kullanıcı seçmek için kullanabilirsiniz:
maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))
... sonra hesap oluşturmak için palmer'ın verdiği dscl komutlarının sırasını kullanın ve ardından yeni kullanıcının ana dizinini 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
(Bir createhomedir komutu var, fakat test ettiğimde işe yaramadı.)
sudo createhomedir -s
Open Directory Kopyaları / Dosya Paylaşımlarını (IIRC) çağırır ve mutlu bir şekilde ev dizinlerini oluştururlar.
dscl -list
256 sonuçla sınırlıdır, bu nedenle 256'dan fazla kullanıcınız varsa, bu teknik benzersiz bir UID'yi garanti edemez.
Oluşturulacak çok sayıda kullanıcı varsa, yapılandırılmış bir metin dosyası oluşturmak dsimport
ve işi yapmak için geçmek mümkündür .
Apple'ın Komut Satırı Yönetim Kılavuzu kullanıcılar ve gruplar hakkında bir bölüme sahiptir.
Bir hesap oluşturmadan önce benzersiz bir kullanıcı kimliği seçmenin ve seçmenin başka bir yolu da listeye bakmak ve kullanmak istediğiniz birinin orada olmadığını kontrol etmektir:
sudo dscl . list /Users uid
sudo dscl . list groups gid
Belirli bir kimlik kullanmanız gerekirse kullanışlı
dscl -list
256 sonuçla sınırlıdır, bu nedenle 256'dan fazla kullanıcınız varsa, bu teknik benzersiz bir UID'yi garanti edemez.
grep
ile id
yeni kullanıcı için kullanmak aklındaki
Kullanıcı hesapları oluşturmak için iyi bir komut dosyası olduğunu düşündüğüm şeyi bulmak için buradaki farklı cevapları kullandım. Kuşkusuz, bu bir anda ssh komutunu çalıştırmak için tasarlanmamıştır; OS X'in paket tabanlı bir görüntüsünü derlerken ( Casper Imaging veya InstaDMG tarafından oluşturulmuş) bir komut dosyası çalışması olarak tasarlanmıştır .
#!/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 olacağını belirtmenize izin vermiyor. Bana göre bu, çalıştırmakta olduğunuz OS X sürümüne bağlı olarak değişebilir. id
OS X 10.6'da yönetici olarak çalıştırdığımda OS X 10.5'de yönetici olarak çalıştırdığımdan farklı sonuçlar alıyorum .
dscl -list
256 sonuçla sınırlıdır, bu nedenle 256'dan fazla kullanıcınız varsa, bu teknik benzersiz bir UID'yi garanti edemez.
Başladığım biraz sarıcı hakkında dscl
o alır useradd
tamamlandığını değil (ne de bazı şeyler OS X üzerinde mümkün değildir gibi olabilir sizce) ama bazı kullanıcı oluşturmayı yapmak için kullandı - 'in parametrelerini.
Çerçeve tüm parametreler için var, bu yüzden GitHub'ın muhteşem sosyal özelliklerinden yararlanmak istiyorsanız, bunu yapmak kolaydır.
single_user
moddan nasıl yapacağınızı (güvenlik ayarlarına sıfırlama) arıyorsanızCommand-S
, basılı tutup yeniden başlatmanız gerekecek , ekran detayları başına diske yazma erişimi kazanacaksınız. , ve sonrarm /var/db/.AppleSetupDone
hangisi yeni bir yönetici hesabı oluşturmanıza izin verir. Umarım bu birine yardımcı olur