Saya ingin dapat membuat pengguna baru di Mac OS X 10.5 dari jarak jauh setelah ssh'ing ke dalam mesin. Bagaimana saya melakukan ini?
Saya ingin dapat membuat pengguna baru di Mac OS X 10.5 dari jarak jauh setelah ssh'ing ke dalam mesin. Bagaimana saya melakukan ini?
Jawaban:
Gunakan perintah dscl. Contoh ini akan membuat pengguna "luser", seperti:
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
Anda kemudian dapat menggunakan passwd untuk mengubah kata sandi pengguna, atau menggunakan:
dscl . -passwd /Users/luser password
Anda harus membuat / Pengguna / luser untuk direktori home pengguna dan mengubah kepemilikan sehingga pengguna dapat mengaksesnya, dan pastikan bahwa UniqueID sebenarnya unik.
Baris ini akan menambahkan pengguna ke grup administrator:
dscl . -append /Groups/admin GroupMembership luser
useradd
sintaksis.
PrimaryGroupID 80
ini admin
, sehingga luser
dapat digunakan sudo
bahkan jika Anda tidak menambahkannya ke grup administrator ini.
(Jawaban ini harus dianggap sebagai tambahan untuk mengisi beberapa kekosongan dalam prosedur palmer)
Untuk memilih UniqueID yang tidak digunakan untuk Anda pengguna baru, Anda dapat menggunakan:
maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))
... kemudian gunakan urutan palmer perintah dscl yang diberikan untuk membuat akun, lalu buat direktori home pengguna baru dengan:
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
(ada perintah createhomedir, tetapi tidak berfungsi ketika saya mengujinya.)
sudo createhomedir -s
(IIRC) di Open Directory Replika / Fileshares, dan mereka dengan senang hati membuat direktori home.
dscl -list
dibatasi hingga 256 hasil, jadi jika Anda memiliki lebih dari 256 pengguna, teknik ini akan gagal untuk menjamin UID yang unik.
Jika Anda memiliki banyak pengguna untuk dibuat, dimungkinkan untuk membuat file teks terstruktur dan meneruskannya dsimport
untuk melakukan pekerjaan itu.
Panduan Administrasi Baris Perintah Apple memiliki bab lengkap tentang pengguna dan grup.
Cara lain untuk memilih dan memilih ID pengguna yang unik sebelum membuat akun adalah dengan melihat-lihat daftar dan memeriksa bahwa yang ingin Anda gunakan tidak ada di sana:
sudo dscl . list /Users uid
sudo dscl . list groups gid
Berguna jika Anda perlu menggunakan ID tertentu
dscl -list
dibatasi hingga 256 hasil, jadi jika Anda memiliki lebih dari 256 pengguna, teknik ini akan gagal untuk menjamin UID yang unik.
grep
itu dengan yang id
ada dalam pikiran Anda untuk digunakan untuk pengguna baru
Saya telah memanfaatkan berbagai jawaban di sini untuk menghasilkan apa yang menurut saya adalah skrip yang bagus untuk membuat akun pengguna. Memang, ini tidak dirancang untuk menjalankan perintah pada satu waktu dari ssh; itu lebih dirancang untuk menjadi skrip dijalankan ketika menyusun gambar berbasis paket OS X (seperti yang dibuat oleh Casper Imaging atau 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)"
Skrip memungkinkan Anda menentukan grup yang harus dimiliki pengguna. Tampak bagi saya bahwa ini mungkin berbeda tergantung pada versi OS X yang Anda jalankan. Saya mendapatkan hasil yang berbeda ketika saya menjalankan id
sebagai admin di OS X 10.6 daripada yang saya lakukan saat menjalankan sebagai admin di OS X 10.5.
dscl -list
dibatasi hingga 256 hasil, jadi jika Anda memiliki lebih dari 256 pengguna, teknik ini akan gagal untuk menjamin UID yang unik.
Saya mulai sedikit pembungkus tentang dscl
yang mengambil useradd
parameter - itu tidak lengkap (saya juga tidak berpikir itu bisa, karena beberapa hal tidak mungkin pada OS X), tapi saya menggunakannya untuk melakukan beberapa penciptaan pengguna.
Kerangka kerjanya ada untuk semua parameter, jadi jika Anda ingin memanfaatkan fitur sosial GitHub yang luar biasa, mudah dilakukan.
single_user
mode (pengaturan ulang keamanan) maka Anda harus me-reboot menahanCommand-S
, mendapatkan akses tulis ke disk per detail di layar , lalurm /var/db/.AppleSetupDone
yang memungkinkan Anda membuat akun admin baru. Semoga ini bisa membantu seseorang