ผู้ใช้ addadd ทำอะไรที่ useradd ไม่ได้?


71

นอกเหนือไปจากระบบที่แพร่หลายมากขึ้นuseraddแล้วระบบของเดเบียนยังมีadduserคำสั่งเพิ่มเติมซึ่งให้อินเทอร์เฟซระดับสูงกว่าสำหรับการเพิ่มผู้ใช้และงานที่เกี่ยวข้องบางอย่าง มีคำถาม / คำตอบต่าง ๆ ในไซต์ SE อื่น ๆ ซึ่งให้รายละเอียดความแตกต่างพื้นฐานระหว่างคำสั่งเหล่านี้ตัวอย่างเช่น:

ส่วนใหญ่ตอบเป็นหลักบอกว่าadduserมีอินเตอร์เฟซที่ดีกว่าสำหรับการเพิ่มผู้ใช้โต้ตอบ แต่ไม่ได้ให้รายละเอียดมากกับสิ่งที่เกิดขึ้นเมื่อมีการเรียกใช้ที่ไม่ได้เมื่อเทียบกับadduser useraddดังนั้น:

  1. มันadduserทำอะไรuseraddไม่ได้เหรอ?
  2. ฉันต้องใช้คำสั่งอะไรเพื่อสร้างผลลัพธ์ที่เทียบเท่ากัน

คำตอบ:


79

ก่อนอื่นตัวอย่างของ man page นั้นจะเน้นความแตกต่างระหว่างคำสั่งทั้งสองและให้การบ่งชี้ว่าเกิดอะไรขึ้น สำหรับadduser:

adduser และ addgroup เพิ่มผู้ใช้และกลุ่มในระบบตามตัวเลือกบรรทัดคำสั่งและข้อมูลการกำหนดค่าใน /etc/adduser.conf ปลายด้านหน้าเป็นมิตรกับเครื่องมือระดับต่ำเช่น useradd, groupadd และโปรแกรม usermod โดยค่าเริ่มต้นเลือกนโยบาย Debian ที่สอดคล้องกับค่า UID และ GID การสร้างโฮมไดเร็กตอรี่ด้วยโครงร่างโครงร่างสคริปต์ที่กำหนดเองและคุณสมบัติอื่น ๆ

จากนั้นสำหรับuseradd:

useradd เป็นยูทิลิตี้ระดับต่ำสำหรับการเพิ่มผู้ใช้ บน Debian ผู้ดูแลระบบควรใช้ adduser (8) แทน

การตรวจสอบเพิ่มเติมของการadduserเปิดเผยพบว่ามันเป็นสคริปต์ Perl ที่ให้อินเตอร์เฟซระดับสูงและทำให้การทำงานของคำสั่งต่อไปนี้:

  • useradd
  • groupadd
  • passwd - ใช้เพื่อเพิ่ม / เปลี่ยนรหัสผ่านผู้ใช้
  • gpasswd - ใช้เพื่อเพิ่ม / เปลี่ยนรหัสผ่านกลุ่ม
  • usermod - ใช้เพื่อเปลี่ยนพารามิเตอร์ที่เกี่ยวข้องกับผู้ใช้ต่างๆ
  • chfn - ใช้เพื่อเพิ่ม / เปลี่ยนแปลงข้อมูลเพิ่มเติมที่เก็บไว้ในผู้ใช้
  • chage - ใช้เพื่อเปลี่ยนข้อมูลการหมดอายุของรหัสผ่าน
  • edquota - ใช้เพื่อเปลี่ยนโควต้าการใช้ดิสก์

การรันพื้นฐานของadduserคำสั่งมีดังนี้:

adduser username

คำสั่งง่ายๆนี้จะทำสิ่งต่าง ๆ :

  1. usernameสร้างผู้ใช้ชื่อ
  2. สร้างโฮมไดเรกทอรีของผู้ใช้ (ค่าเริ่มต้นคือ/home/usernameและคัดลอกไฟล์จาก/etc/skelลงในนั้น
  3. สร้างกลุ่มที่มีชื่อเดียวกับผู้ใช้และวางผู้ใช้ไว้ในกลุ่ม
  4. แจ้งรหัสผ่านสำหรับผู้ใช้
  5. แจ้งสำหรับข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้

useraddโปรแกรมส่วนใหญ่สามารถประสบความสำเร็จมากที่สุดนี้ แต่ก็ไม่ได้ทำเช่นนั้นโดยค่าเริ่มต้นและความต้องการตัวเลือกเพิ่มเติม ข้อมูลบางส่วนต้องการคำสั่งเพิ่มเติม:

useradd -m -U username
passwd username
chfn username

โปรดทราบว่าadduserเพื่อให้แน่ใจว่าสร้าง UIDs และ GIDs สอดคล้องกับนโยบาย Debian สร้างผู้ใช้ปกติuseraddดูเหมือนว่าจะตกลงให้UID_MIN/ UID_MAXใน/etc/login.defsตรงกับนโยบาย Debian ปัญหาคือว่า Debian ระบุช่วงเฉพาะสำหรับUID ผู้ใช้ระบบซึ่งดูเหมือนว่าจะได้รับการสนับสนุน/etc/adduser.confเท่านั้นดังนั้นการเพิ่มผู้ใช้ระบบอย่างไร้เดียงสาuseraddและไม่ระบุ UID / GUID ในช่วงที่ถูกต้องทำให้เกิดปัญหาร้ายแรง

การใช้งานทั่วไปอีกอย่างหนึ่งadduserคือการลดความซับซ้อนของกระบวนการเพิ่มผู้ใช้ในกลุ่ม ที่นี่คำสั่งต่อไปนี้:

adduser username newgroup

แทนที่usermodคำสั่งที่ซับซ้อนยิ่งขึ้นซึ่งต้องการกลุ่มที่ผู้ใช้เป็นสมาชิกอยู่แล้ว (และคุณต้องการให้ผู้ใช้ยังคงเป็นสมาชิกอยู่) เพื่อระบุ:

usermod -G all,other,groups,user,is,in,newgroup

ข้อเสียอย่างหนึ่งของการใช้adduserที่นี่แม้ว่าคุณจะสามารถระบุได้ทีละกลุ่มเท่านั้น


ที่นี่หนาว! ฉันไม่รู้ด้วยซ้ำว่านี่เป็นคำถาม ใช้รหัสผ่านที่แฮชหรือไม่เมื่อผู้ใช้เพิ่ม นี่เป็นงานที่ดีมากโดยวิธีการ
mikeserv

ฉันไม่ทราบว่าฉันเห็นด้วยอย่างสมบูรณ์กับคำสั่ง "ผู้ดูแลระบบควร ... " แต่โดยส่วนตัวแล้วฉันเชื่อว่าผู้ดูแลระบบควรจะรวมตัวของเขา / เธอเองadduserตามนโยบายทั่วทั้งระบบ แต่นั่นเป็นเพียงเก้าอี้เท้าแขน กองหลังที่ดีที่สุด
mikeserv

@mikeserv ไม่มีรหัสผ่านที่แฮช มีโปรแกรมอื่นที่คุณควรทราบว่า - chpasswd- ซึ่งสามารถรับรหัสผ่านที่แฮชstdinได้ พรุ่งนี้ฉันจะรอจนกว่าฉันจะอัปเดตคำตอบอื่น ๆ แม้ว่าฉันคิดว่า
แกรม

โพสต์ที่ดี สำหรับฉันรายละเอียดเล็กน้อยมากเกินไป สิ่งที่ฉันคิดถึงมากที่สุดคือสิ่งที่adduserถูกสร้างขึ้นสำหรับผู้ดูแลเซิร์ฟเวอร์ที่ต้องการสร้าง / แก้ไข / จำกัด ผู้ใช้จริงเช่นบนเซิร์ฟเวอร์อีเมลที่มหาวิทยาลัยบ่อยครั้ง ด้วยadduserคุณสามารถทำให้กระบวนการอัตโนมัติ สิ่งนี้เปลี่ยนไปเล็กน้อยในช่วงหลายปีที่ผ่านมาดังนั้นทุกวันนี้useraddอาจเป็นเรื่องยากสำหรับผู้ดูแลระบบจำนวนมากและสำหรับพวกเขาadduserกลายเป็นเครื่องมือในการเลือก

บน Ubuntu 16.04 ของฉัน-U/ --user-groupดูเหมือนจะเป็นค่าเริ่มต้น
Franklin Yu

2

adduserคำสั่งโดยค่าเริ่มต้นยังสร้างบ้าน / directory / ผู้ใช้สำหรับผู้ใช้ระบบที่คุณไม่สามารถทำอะไรกับuseraddคำสั่ง useradd เพิ่มโฮมไดเรกทอรีสำหรับผู้ใช้ปกติไม่ใช่ผู้ใช้ระบบ


1

ผู้ดูแลระบบสามารถทำอะไรกับ useradd ที่สามารถทำได้ด้วย adduser มีการระบุไว้ที่นี่ว่าคุณไม่สามารถสร้าง / home / user directory สำหรับผู้ใช้ระบบที่มี useradd และคุณสามารถทำได้โดยการแก้ไขไฟล์ที่มีอยู่ใน / etc / skel / etc / skel มีชุดของไฟล์ที่เริ่มใช้เพื่อเติมไดเรกทอรีบ้านของผู้ใช้ใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.