นี่คือรหัสสคริปต์ที่ฉันใช้ตอนนี้:
getent group $MYGROUP
if [ $? -ne 0 ] ; then
sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
วิธีนี้ใช้ได้ดีกับ openSuse แต่มีปัญหาหลายประการเกี่ยวกับบัญชีผู้ใช้ที่สร้างบนUbuntuดังนั้นฉันจึงขอความช่วยเหลือจากที่นี่
- เทอร์มินัลพรอมต์ไม่ได้ตั้งค่า (
echo $PS1
ไม่ส่งคืนอะไร) - ปุ่มลูกศรและแป้นแท็บทำงานไม่ถูกต้องในเครื่องเทอร์มินัล
- ดูเหมือนว่ารหัสผ่านจะไม่ทำงาน (แม้ว่าฉันจะยังไม่ชัดเจนว่าปัญหานี้คืออะไร)
- สิทธิ์ / etc / sudoers ที่กำหนดไว้สำหรับผู้ใช้ใหม่นี้จะไม่ได้รับเกียรติ
ถ้าฉันจะสร้างผู้ใช้ด้วยตนเองadduser
(แทนที่จะเป็น useradd) ฉันไม่มีปัญหาเหล่านี้ใน Ubuntu แต่ฉันไม่สามารถใช้adduser
กับ openSuse (afaik) ได้ ดังนั้นฉันต้องการสคริปต์ที่ไม่เฉพาะ Debian เท่านั้นหรือวิธีการเพิ่มบัญชีผู้ใช้ผ่านสคริปต์ทุบตีของฉันที่ทำงานบน Ubuntu (และไม่หยุดทำงานกับ distros อื่น)
สุดท้ายผมอยากจะเข้าใจความแตกต่างระหว่างและadduser
useradd
ตัวอย่างเช่นฉันต้องการทราบว่ามีการใช้ไดเรกทอรี Skeleton ใดadduser
เนื่องจากอาจเป็นสาเหตุที่useradd
ใช้งานไม่ได้ตามที่คาดไว้ (เพราะฉันเพิ่งยอมรับค่าเริ่มต้น)
ขอบคุณ
sudo su -c "cmd arg1 arg2"
sudo cmd arg1 arg2
sudo su -c "cmd arg1 arg2"
เรื่อย ๆ เพื่อให้มันใช้ได้ทุกที่ที่ต้องการ
adduser
เป็นสคริปต์Perlมากกว่า 1,000 บรรทัดดังนั้นสำหรับความแตกต่างที่คุณสามารถดูที่สคริปต์
adduser
แต่ฉันไม่เข้าใจภาษา Perl นั่นไม่ใช่วิธีที่ดีสำหรับฉัน
man useradd
): useradd เป็นยูทิลิตี้ระดับต่ำสำหรับการเพิ่มผู้ใช้ บน Debian ผู้ดูแลระบบควรใช้ adduser (8) แทน