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


Mac OS X 10.5'te makineye ssh'ing sonrası yeni kullanıcılar oluşturabilmek istiyorum. Bunu nasıl yaparım?


84
2018-06-05 18:07


Menşei


Henüz cevap verebilecek bir ünüm yok, ancak bunu nasıl yapacağınızı arıyorsanız single_user modu (bir güvenlik sıfırlaması) ardından basılı tutmayı yeniden başlatmanız gerekir Command-SEkrandaki ayrıntılar için diske yazma erişimi kazanın ve sonra rm /var/db/.AppleSetupDone yeni bir yönetici hesabı oluşturmanıza izin verecek. Umarım bu birisine yardım eder - New Alexandria


Cevaplar:


Dscl komutunu kullanın. Bu örnek, kullanıcı "luser" ı yaratacak, şöyle ki:

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 şifresini değiştirmek için passwd'yi kullanabilir veya aşağıdakileri kullanabilirsiniz:

dscl . -passwd /Users/luser password

Kullanıcının ev dizini için / Users / luser oluşturmanız ve sahipliğin kullanıcı tarafından erişilebilmesi için sahipliğini değiştirmeniz ve UniqueID'nin aslında benzersiz olduğundan emin olmanız gerekir.

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

dscl . -append /Groups/admin GroupMembership luser

80
2018-06-05 18:15



UID'nin benzersiz olduğundan nasıl emin olabilirim? - JR Lawhorne
Otomatik bir yol yok; Eğer senaryosunu yazarsan, sadece "id ####" komutunu çalıştırırsın ve "Böyle bir kullanıcı yok" ya da böyle bir hack olmasından emin ol. - palmer
İzinleriniz yoksa sudo kullanmayı unutmayın. - Raffi Khatchadourian
BTW, bu olması gerektiğinden çok daha ayrıntılı Ben taşındım bu komutlar useradd sözdizimi. - Xiong Chiamiov
Bunu not et PrimaryGroupID 80 olduğu admin, yani luser kullanabilirsiniz sudo Onu yöneticilerin grubuna eklemeseniz bile. - ruslo


(Bu cevap, palmer prosedüründe bazı boşlukları doldurmak için bir ek olarak kabul edilmelidir)

Yeni kullanıcı için kullanılmamış bir UniqueID'yi seçmek için şunları kullanabilirsiniz:

maxid=$(dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1)
newid=$((maxid+1))

... daha sonra hesabı oluşturmak için verilen palet komutlarının sırasını kullanın ve ardından yeni kullanıcının giriş dizinini aşağıdakilerle oluşturun:

cp -R /System/Library/User\ Template/English.lproj /Users/luser
chown -R luser:staff /Users/luser

(bir createhomedir komutu var, ama test ettiğimde işe yaramadı.)


20
2018-06-05 20:21



Open Directory Master'ımızı yeni kullanıcılarla dolduran bir komut dosyası oluşturduktan sonra sudo createhomedir -s Açık Dizin Kopyaları / Fileshares (IIRC) ve onlar mutlu bir şekilde ev dizinleri oluştururlar. - Clinton Blackmore
dscl -list 256 sonuçla sınırlıdır, bu yüzden 256'dan fazla kullanıcınız varsa, bu teknik benzersiz bir UID'yi garanti edemez. - smokris


Oluşturulacak bir grup kullanıcınız varsa, yapılandırılmış bir metin dosyası oluşturmak ve dsimport işi yapmak için.

Elmalar Komuta Hattı Yönetimi Kılavuzun kullanıcılar ve gruplar hakkında bir bölümü vardır.


8
2018-06-05 19:19



Garip. Apple, başlangıçta atıfta bulunulan belgenin v10.5'ini bitirmiş gibi görünüyor, ama v10.3 tutuldu ve daha az kapsamlı Kar leopar sürümü - chb


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

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

Belirli bir kimliği kullanmanız gerekiyorsa kullanışlı


7
2017-11-30 16:10



dscl -list 256 sonuçla sınırlıdır, bu yüzden 256'dan fazla kullanıcınız varsa, bu teknik benzersiz bir UID'yi garanti edemez. - smokris
Evet, bu kullanıcıyı hemen buraya eklemenin en kısa yolu bu, sadece grep onunla id yeni kullanıcı için kullanmak için aklınızda bulundun - yair


Kullanıcı hesaplarını oluşturmak için güzel bir betik olduğunu düşündüğüm şeylerin ortaya çıkması için farklı cevaplardan yararlandım. Kuşkusuz, bu ssh den bir anda bir komut çalıştırmak için tasarlanmamıştır; OS X'in paket tabanlı bir imajını derlerken betik çalışması için tasarlanmış moreso'dur. Casper Görüntüleme veya InstaDMG).

#!/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ı, kullanıcının hangi gruplara ait olması gerektiğini belirtmenize izin verir. Bana, çalıştığınız OS X sürümüne bağlı olarak değişebilir. Koştuğumda farklı sonuçlar elde ederim id OS X 10.5 üzerinde bir yönetici olarak OS X 10.5 üzerinde bir yönetici olarak çalışırken benden daha.


7
2018-01-14 23:02



Başka bir cevapla, Elliott, 'createhomedir -c' komutunun sonuna doğru, sizin bağlı olduğunuz dizindeki tüm kullanıcılar için hesaplar oluşturacağı konusunda uyarıyor. (Man-sayfasındaki '-c' seçeneği 'sadece yerel ev yolları için ana dizinler oluşturur.') Başka bir seçenek daha vardır, '-u kullanıcı adı', daha iyi çalışabilir. - Clinton Blackmore
merhaba yukarıdaki senaryoyu kullanıyorum. Bu yüzden yeni kullanıcımı ekliyor, ancak kullanıcı takvime bağlanınca izinleri olmadığını söylüyor! Bana yardımcı olabilir misiniz ?
@jimmy: Sunucufault ile ilgili yeni bir soru sormanızı ve bu sorunun cevabını sadece nadiren görülecek olan yorumlarda sormaktan çok tavsiye ederim. İzinlerin doğru olmasını beklerdim. Doğru izinlere sahip olmayan bir dosyayı tanımlayabiliyorsanız 'chown' ve 'chmod' öğelerini kullanmanız yardımcı olabilir ... ancak hangisinin olacağını bilmiyorum. - Clinton Blackmore
dscl -list 256 sonuçla sınırlıdır, bu yüzden 256'dan fazla kullanıcınız varsa, bu teknik benzersiz bir UID'yi garanti edemez. - smokris


başladım küçük bir sarıcı hakkında dscl bu alır useraddParametreler - tamamlanmadı (OS X'de bazı şeyler mümkün olmadığından, bunun olabileceğini sanmı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'un harika sosyal özelliklerinden yararlanmak istiyorsanız, bunu yapmak çok kolay.


4
2017-10-17 06:15