সম্পাদনা: ওএস এক্স মাভারিক্সের জন্য জানুয়ারী 9, 2014 আপডেট হয়েছে (ডেভের পরামর্শ, ধন্যবাদ!)
এটি করার জন্য আমি একটি বাশ স্ক্রিপ্ট লিখেছিলাম। এটি প্রথম অব্যবহৃত ইউআইডি ব্যবহার করবে যা 500 এর চেয়ে কম বা সমান (ম্যাক ওএস এক্সে ডেমন অ্যাকাউন্ট ইউডস) এতে অভিন্ন অব্যবহৃত জিডও রয়েছে।
নামে একটি ফাইলে স্ক্রিপ্ট সংরক্ষণ করুন add_system_user.sh
এবং এটি সেট দিয়ে এক্সিকিউটেবল chmod 755 add_system_user.sh
।
তারপরে বলা যাক আপনি একটি ডেমোন / সিস্টেম ব্যবহারকারী যা পেরে যোগ করতে চান । আপনি এই স্ক্রিপ্টটি এভাবে চালাতেন:
sudo add_system_user.sh par
এবং আপনি এমন একটি সিস্টেম ব্যবহারকারী পেয়ে যাবেন _par
যা par
নাম (যা আপনি অনুরোধ করেছিলেন) এর সাথে যুক্ত হয় এবং তার সাথে একটি ম্যাচিং ইউআইডি এবং জিড থাকে (যেমন 499 বা এটি যা পাওয়া যায়)।
লিপিটি এখানে:
#!/bin/bash
if (( $(id -u) )) ; then
echo "This script needs to run as root"
exit 1
fi
if [[ -z "$1" ]] ; then
echo "Usage: $(basename $0) [username] [realname (optional)]"
exit 1
fi
username=$1
realname="${2:-$username}"
echo "Adding daemon user $username with real name \"$realname\""
for (( uid = 500;; --uid )) ; do
if ! id -u $uid &>/dev/null; then
if ! dscl /Local/Default -ls Groups gid | grep -q [^0-9]$uid\$ ; then
dscl /Local/Default -create Groups/_$username
dscl /Local/Default -create Groups/_$username Password \*
dscl /Local/Default -create Groups/_$username PrimaryGroupID $uid
dscl /Local/Default -create Groups/_$username RealName "$realname"
dscl /Local/Default -create Groups/_$username RecordName _$username $username
dscl /Local/Default -create Users/_$username
dscl /Local/Default -create Users/_$username NFSHomeDirectory /var/empty
dscl /Local/Default -create Users/_$username Password \*
dscl /Local/Default -create Users/_$username PrimaryGroupID $uid
dscl /Local/Default -create Users/_$username RealName "$realname"
dscl /Local/Default -create Users/_$username RecordName _$username $username
dscl /Local/Default -create Users/_$username UniqueID $uid
dscl /Local/Default -create Users/_$username UserShell /usr/bin/false
dscl /Local/Default -delete /Users/_$username AuthenticationAuthority
dscl /Local/Default -delete /Users/_$username PasswordPolicyOptions
break
fi
fi
done
echo -e "Created system user $username (uid/gid $uid):\n"
dscl /Local/Default -read Users/_$username
echo -e "\nYou can undo the creation of this user by issuing the following commands:\n"
echo "sudo dscl /Local/Default -delete Users/_$username"
echo "sudo dscl /Local/Default -delete Groups/_$username"