Tôi muốn có thể tạo người dùng mới trong Mac OS X 10.5 từ xa sau khi vào máy. Làm thế nào để tôi làm điều này?
Tôi muốn có thể tạo người dùng mới trong Mac OS X 10.5 từ xa sau khi vào máy. Làm thế nào để tôi làm điều này?
Câu trả lời:
Sử dụng lệnh dscl. Ví dụ này sẽ tạo ra "luser" người dùng, như vậy:
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
Sau đó, bạn có thể sử dụng mật khẩu để thay đổi mật khẩu của người dùng hoặc sử dụng:
dscl . -passwd /Users/luser password
Bạn sẽ phải tạo / Người dùng / người sử dụng cho thư mục chính của người dùng và thay đổi quyền sở hữu để người dùng có thể truy cập vào đó và chắc chắn rằng UniqueID thực tế là duy nhất.
Dòng này sẽ thêm người dùng vào nhóm của quản trị viên:
dscl . -append /Groups/admin GroupMembership luser
useradd
cú pháp.
PrimaryGroupID 80
là admin
, vì vậy luser
có thể sử dụng sudo
ngay cả khi bạn không thêm anh ấy vào nhóm quản trị viên của.
(Câu trả lời này nên được coi là một phụ lục để điền vào một số khoảng trống trong quy trình của palmer)
Để chọn một UniqueID chưa sử dụng cho người dùng mới của bạn, bạn có thể sử dụng:
maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))
... sau đó sử dụng chuỗi các lệnh dscl palmer đã cung cấp để tạo tài khoản và sau đó tạo thư mục chính của người dùng mới với:
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
(có một lệnh createhomedir, nhưng nó không hoạt động khi tôi thử nghiệm nó.)
sudo createhomedir -s
(IIRC) trên Bản sao / Tệp dữ liệu mở và họ vui vẻ tạo các thư mục chính.
dscl -list
được giới hạn ở 256 kết quả, vì vậy nếu bạn có hơn 256 người dùng, kỹ thuật này sẽ không đảm bảo UID duy nhất.
Nếu bạn có một nhóm người dùng để tạo, có thể tạo một tệp văn bản có cấu trúc và chuyển nó dsimport
để thực hiện công việc.
Hướng dẫn quản trị dòng lệnh của Apple có cả một chương về người dùng và nhóm.
Một cách khác để chọn và chọn một ID người dùng duy nhất trước khi tạo tài khoản chỉ là xem qua danh sách và kiểm tra xem tài khoản bạn muốn sử dụng có ở đó không:
sudo dscl . list /Users uid
sudo dscl . list groups gid
Tiện dụng nếu bạn cần sử dụng một ID nhất định
dscl -list
được giới hạn ở 256 kết quả, vì vậy nếu bạn có hơn 256 người dùng, kỹ thuật này sẽ không đảm bảo UID duy nhất.
grep
nó với các id
bạn đã có trong tâm trí để sử dụng cho người dùng mới
Tôi đã tận dụng các câu trả lời khác nhau ở đây để đưa ra những gì tôi nghĩ là một kịch bản hay để tạo tài khoản người dùng. Phải thừa nhận rằng, điều này không được thiết kế để chạy lệnh tại một thời điểm từ ssh; nó được thiết kế để chạy tập lệnh khi biên dịch hình ảnh dựa trên gói của OS X (như được tạo bởi Casper Imaging hoặc 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)"
Kịch bản cho phép bạn chỉ định những nhóm người dùng nên thuộc về. Tôi nhận thấy rằng điều này có thể khác nhau tùy thuộc vào phiên bản OS X mà bạn đang chạy. Tôi nhận được các kết quả khác nhau khi tôi chạy id
với tư cách quản trị viên trên OS X 10.6 so với khi tôi làm quản trị viên trên OS X 10.5.
dscl -list
được giới hạn ở 256 kết quả, vì vậy nếu bạn có hơn 256 người dùng, kỹ thuật này sẽ không đảm bảo UID duy nhất.
Tôi bắt đầu một wrapper ít về dscl
mà có useradd
thông số 's - nó không đầy đủ (cũng không làm tôi nghĩ rằng nó có thể được, như một số thứ là không thể trên OS X), nhưng tôi sử dụng nó để làm một số người dùng tạo ra.
Khung này có sẵn cho tất cả các tham số, vì vậy nếu bạn muốn tận dụng các tính năng xã hội tuyệt vời của GitHub, thật dễ dàng để làm điều đó.
single_user
chế độ (thiết lập lại bảo mật) thì bạn sẽ cần phải khởi động lại, giữCommand-S
quyền truy cập ghi vào đĩa trên mỗi chi tiết trên màn hình và saurm /var/db/.AppleSetupDone
đó sẽ cho phép bạn tạo một tài khoản quản trị viên mới. Hy vọng điều này sẽ giúp được ai đó