ความแตกต่างระหว่างคำสั่งadduser
และuseradd
บน Ubuntu คืออะไร?
ความแตกต่างระหว่างคำสั่งadduser
และuseradd
บน Ubuntu คืออะไร?
คำตอบ:
useradd
เป็นไบนารีดั้งเดิมที่คอมไพล์ด้วยระบบ แต่adduser
เป็นสคริปต์ Perl ซึ่งใช้useradd
ไบนารีใน back-end
adduser
เป็นมิตรต่อผู้ใช้และการโต้ตอบกว่าuseradd
back-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.conf
useradd
groupadd
usermod
adduser
addgroup
useradd
พูดว่า:
useradd
เป็นยูทิลิตี้ระดับต่ำสำหรับการเพิ่มผู้ใช้ บน Debian ผู้ดูแลระบบควรใช้adduser(8)
แทน
ดูเพิ่มเติมที่: “ adduser” และ“ useradd” ต่างกันอย่างไร (บน SuperUser)
adduser
openSUSE และไม่มีอยู่ (13.2)
locate adduser
ในระบบ SuSE 11 ที่ทำงานฉันพบว่ามีadduser
manpage แต่ไม่มีไบนารี (และไม่ใช่deluser
manpage หรือคำสั่ง)
/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
ไดเรกทอรีบ้านแล้วใช้