ความแตกต่างระหว่างคำสั่งadduserและuseraddบน Ubuntu คืออะไร?
ความแตกต่างระหว่างคำสั่งadduserและuseraddบน Ubuntu คืออะไร?
คำตอบ:
useraddเป็นไบนารีดั้งเดิมที่คอมไพล์ด้วยระบบ แต่adduserเป็นสคริปต์ Perl ซึ่งใช้useraddไบนารีใน back-end
adduserเป็นมิตรต่อผู้ใช้และการโต้ตอบกว่าuseraddback-end ไม่มีความแตกต่างในคุณสมบัติที่มีให้
ที่มา: อะไรคือความแตกต่างระหว่าง "ผู้เพิ่ม" และ "ผู้ใช้เพิ่ม"?
-mตัวเลือกจะสร้างโฮมไดเร็กตอรี่
adduser(8)คือใช้งานง่ายมากขึ้นและสร้างและการตั้งค่าของผู้ใช้โดยเริ่มต้นในแบบที่คุณคาดหวัง และuseradd(8)ทำในสิ่งที่คุณถามเท่านั้นดังนั้นคุณต้องการสร้างโฮมไดเร็กตอรี่คุณต้องบอกให้สร้างมันให้คุณ
ใช้adduser (และdeluserเมื่อลบผู้ใช้) เสมอเมื่อคุณสร้างผู้ใช้ใหม่จากบรรทัดคำสั่ง (หากคุณกำลังเขียนสคริปต์โดยเฉพาะอย่างยิ่งถ้าคุณตั้งเป้าหมายในการพกพาคุณอาจต้องการใช้ยูทิลิตี้ระดับล่างแทน - และadduser/ deluserอาจไม่สามารถใช้ได้กับทุก distros เช่นใน SuSE)
useradd, userdelและusermodคำสั่งที่มีสาธารณูปโภค lowlevel ซึ่งจะมีเหตุผลทางประวัติศาสตร์ในขณะที่adduser/deluserทำสิ่งที่ถูกต้อง™ (ฉันจำได้ว่าจะใช้โดยการคิดที่user*มาadduser/deluserในตัวอักษรและดังนั้นจึงเป็น "แย่ลง")
ตาม manpages ที่เกี่ยวข้อง (บน Ubuntu 12.04 Pangolin ที่แม่นยำ, เช่นระบบอนุพันธ์ Debian)
adduserพูดว่า:(เพิ่มการเน้น)
adduserและเพิ่มผู้ใช้และกลุ่มที่จะระบบตามตัวเลือกบรรทัดคำสั่งและข้อมูลการกำหนดค่าในaddgroupต้อนรับพวกเขาเป็นมิตรปิดให้บริการไปยังเครื่องมือระดับต่ำเช่น, และโปรแกรมโดยค่าเริ่มต้นเลือก Debian นโยบายที่สอดคล้องกับค่า UID และ GID สร้างไดเรกทอรีบ้านกับการกำหนดค่าโครงเหล็ก, การเรียกใช้สคริปต์ที่กำหนดเองและคุณลักษณะอื่น ๆ และสามารถเรียกใช้ในหนึ่งในห้าโหมด:/etc/adduser.confuseraddgroupaddusermodadduseraddgroup
useraddพูดว่า:
useraddเป็นยูทิลิตี้ระดับต่ำสำหรับการเพิ่มผู้ใช้ บน Debian ผู้ดูแลระบบควรใช้adduser(8)แทน
ดูเพิ่มเติมที่: “ adduser” และ“ useradd” ต่างกันอย่างไร (บน SuperUser)
adduseropenSUSE และไม่มีอยู่ (13.2)
locate adduserในระบบ SuSE 11 ที่ทำงานฉันพบว่ามีaddusermanpage แต่ไม่มีไบนารี (และไม่ใช่delusermanpage หรือคำสั่ง)
/usr/sbin/adduser -> useradd
adduser: เพิ่มผู้ใช้ที่มีโปรไฟล์และข้อมูลครบถ้วน (ผ่านโควต้าการอนุญาตเป็นต้น)
useradd: เพิ่มผู้ใช้ที่มีชื่อของเขาเท่านั้น (หากคุณต้องการเพิ่มผู้ใช้ชั่วคราวที่มีเพียงชื่อเท่านั้นไม่ต้องการข้อมูลอื่น ๆ )
ความแตกต่างอีกสองข้อที่นำไปสู่สถานการณ์เฉพาะที่ผู้ใช้อาจต้องการ
ใน distros ที่ใหม่กว่ารวมถึง Ubuntu 14.4 ผู้ใช้จะแจ้งให้ทราบข้อมูลเช่นรหัสผ่านและ "gecos" (ข้อมูลสำหรับคำสั่ง finger) ซึ่งหมายความว่าจะไม่เหมาะสำหรับการโทรจากสคริปต์ (เครดิต: ถูกกล่าวถึงในความคิดเห็นโดย Wernight)
พรอมต์สามารถถูกระงับโดยผ่านอาร์กิวเมนต์เป็นโมฆะ:
adduser --disabled-password --gecos "" USER
useraddช่วยให้คุณสามารถส่งกลุ่มเพิ่มเติมหลายกลุ่มเพื่อเพิ่มผู้ใช้โดยใช้-Gตัวเลือก adduserดูเหมือนว่าคุณจะต้องเรียกคำสั่งหนึ่งครั้งเพื่อให้แต่ละกลุ่มเพิ่ม
adduserเป็นมิตรในการตั้งค่าโฟลเดอร์บ้านของบัญชีและการตั้งค่าอื่น ๆ (เช่นการโหลดสถิติของระบบและการแจ้งเตือนโดยอัตโนมัติเมื่อเข้าสู่ระบบ) ในขณะที่useraddเพียงแค่สร้างผู้ใช้
ความแตกต่างพื้นฐานคือ "adduser" จะสร้างโฮมไดเร็กตอรี่ & เพิ่มไฟล์ Skeleton ไปยังไดเร็กตอรี่ที่ "useradd" จะไม่สร้างโฮมไดเร็กตอรี่และไฟล์ Skeleton!
Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
# ll /home/
total 20
drwxr-xr-x 5 root root 4096 Oct 26 15:52 ./
drwxr-xr-x 22 root root 4096 Oct 26 15:47 ../
drwx------ 8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x 3 root root 4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x 2 try try 4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#
ฉันจะชี้ให้เห็นadduserว่าไม่ได้มี-Mตัวเลือกเสมอไปและไม่เคารพ--systemธงที่ระบุว่า :
โปรดทราบว่า useradd จะไม่สร้างโฮมไดเรกทอรีสำหรับผู้ใช้ดังกล่าวโดยไม่คำนึงถึงการตั้งค่าเริ่มต้นใน /etc/login.defs (CREATE_HOME) คุณต้องระบุตัวเลือก -m หากคุณต้องการให้โฮมไดเรกทอรีสำหรับบัญชีระบบที่จะสร้าง
ถ้าคุณกำลังพยายามที่จะสร้างผู้ใช้ระบบได้โดยไม่ต้องuseradd --system -Mไดเรกทอรีบ้านแล้วใช้