ฉันจะเพิ่มผู้ใช้ใหม่เป็น sudoer โดยใช้บรรทัดคำสั่งได้อย่างไร


819

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

นอกจากนี้ฉันสามารถตั้งค่าผู้ใช้ที่เพิ่มใหม่เป็นsudoเอ้อหรือฉันต้องเปลี่ยนมันหลังจากการเพิ่มมันได้หรือไม่ ฉันจะทำสิ่งนั้นผ่านเปลือกได้อย่างไร

ในที่สุดฉันสามารถลบผู้ใช้เดิมที่สร้างขึ้นเมื่อติดตั้งเริ่มต้นของ Ubuntu หรือผู้ใช้รายนี้เป็น 'พิเศษ' อย่างใด

คำตอบ:


1023

เพียงเพิ่มผู้ใช้ในsudoกลุ่ม :

sudo adduser <username> sudo

การเปลี่ยนแปลงจะมีผลในครั้งต่อไปที่ผู้ใช้ลงชื่อเข้าใช้

ใช้งานได้เนื่องจาก/etc/sudoersมีการกำหนดค่าไว้ล่วงหน้าเพื่อให้การอนุญาตแก่สมาชิกทุกคนในกลุ่มนี้ (คุณไม่ควรทำการเปลี่ยนแปลงใด ๆ กับสิ่งนี้):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

ตราบใดที่คุณสามารถเข้าถึงผู้ใช้ที่อยู่ในกลุ่มเดียวกับผู้ใช้ "ดั้งเดิม" ของคุณคุณสามารถลบเก่าได้


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

adm sudo lpadmin sambashare

เนื่องจากการกำหนดค่าระบบของคุณอาจแตกต่างกันฉันขอแนะนำให้ดูที่ผลลัพธ์ของgroups <username>เพื่อดูกลุ่มที่ใช้งานตามปกติ


1
@Dziamid ฉันไม่แน่ใจว่าsudoกลุ่มนี้มีไว้เพื่ออะไร มาหาคำตอบกัน
ændrük

7
โปรดทราบว่าadminกลุ่มไม่มีใน 12.04 LTS
Ryan

18
คำถามที่เป็นเรื่องเกี่ยวกับผู้ใช้ที่มีอยู่ แต่ถ้ามันเป็นสำหรับผู้ใช้ใหม่"sudo adduser <username> sudo"จะต้องนำหน้าด้วย"sudo adduser <username>" มิฉะนั้นจะได้รับข้อความแสดงข้อผิดพลาด "ไม่มีผู้ใช้ <username>"
Peter Mortensen

9
สิ่งนี้ไม่ได้ผลสำหรับฉัน ยังไม่สามารถใช้ sudo ได้
chovy

10
ต้องเข้าสู่ระบบอีกครั้งเพื่อให้มันใช้งานได้
PeterM

193

ฉันทำ

sudo usermod -a -G sudo <username>

ตามคำแนะนำของที่นี่


28
กลุ่ม sudo ไม่มีอยู่
Aaron Esau

ทางออกเดียวที่ทำงานที่นี่ Ubuntu 16
Makan Tayebi

5
สำหรับผู้ใช้ที่มีอยู่นี่เป็นวิธีการแก้ไขที่ถูกต้อง ควรทำเครื่องหมายเป็นคำตอบ
Yokai

3
อย่าลืม-aตั้งค่าสถานะมิฉะนั้นคุณจะลบผู้ใช้ออกจากกลุ่มทั้งหมดยกเว้นsudo
RousseauAlexandre

@ RousseauAlexandre อย่างแน่นอน! ที่สำคัญที่สุดโดยเฉพาะอย่างยิ่งถ้าคุณพยายามที่จะเพิ่มตัวเองในกลุ่มที่ไม่ใช่ sudo และคุณเป็นคนเดียวในเครื่องที่มีสิทธิ์ sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart

79

เปิดไฟล์ sudoers: sudo visudoจะเปิด/etc/sudoersไฟล์ในตัวแก้ไขที่กำหนดไว้$EDITOR(อาจเป็นGNU nano - ตั้งค่าตัวแปรหากไม่ใช่สิ่งที่คุณต้องการเช่นexport EDITOR="nano"และลองsudo visudoอีกครั้ง)

เพิ่มบรรทัดด้านล่างลงในตอนท้ายของไฟล์

username ALL=(ALL) ALL   # Change the user name before you issue the commands

จากนั้นดำเนินการกับ WriteOut +Ctrl Oผู้แก้ไขจะขอให้คุณเขียนชื่อไฟล์ ค่าเริ่มต้นจะเป็นไฟล์ชั่วคราวที่ใช้visudoเพื่อตรวจสอบข้อผิดพลาดทางไวยากรณ์ก่อนบันทึกลงในsudoersไฟล์จริง กดEnterเพื่อยอมรับ ออกจากตัวแก้ไขนาโนด้วย+CtrlX

ทำ!


9
มันจะไม่สมควรอย่างชัดเจนเพิ่มผู้ใช้เพียงครั้งเดียวเพื่อ sudoers sudoไฟล์แทนที่จะเพิ่มผู้ใช้ไปยังกลุ่มที่เหมาะสม
Kzqai

3
ด้วย sudo visudo คุณสามารถส่งออกไปยัง /etc/sudoers.tmp เมื่อออกจากโปรแกรมแก้ไขมันจะเขียนทับ / etc / sudoers ด้วยตัวมันเอง
Climbatize

1
และ visudo จะตรวจสอบไวยากรณ์เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาด
mchid

ข้อผิดพลาดทางไวยากรณ์หากใช้สิ่งนี้
jheriko

2
โซลูชันอื่น ๆ ใช้งานได้ดีสำหรับระบบปฏิบัติการที่มีsudoกลุ่มภายใน แต่สำหรับระบบที่ไม่มีsudoกลุ่มเฉพาะโซลูชั่นนี้จะทำงานได้ดี คำแนะนำเดียวที่ฉันมีคือคุณอาจต้องการหลีกเลี่ยงการวางตัวsudoเองในขั้นตอนเนื่องจากอาจยังไม่ได้ตั้งค่า! ง่ายต่อการแก้ปัญหาโดยการทำแล้วก็su - visudioสิ่งนี้ใช้ได้กับ Gentoo
tresf

30

สิ่งหนึ่งที่ฉันต้องเพิ่มที่ฉันแน่ใจว่าผู้คนจำนวนมากไม่เข้าใจ:

เมื่อคุณได้ทำไปแล้วadduser "username"คุณยังสามารถกลับมาทำadduser "username" sudoใหม่ได้และมันจะเพิ่มผู้ใช้นั้นในกลุ่มอย่างถูกต้อง

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


11

สมาชิกทั้งหมดของกลุ่มadminอยู่ใน Ubuntu โดยค่าเริ่มต้นอนุญาตให้ใช้ sudo ดังนั้นวิธีที่ง่ายที่สุดคือการเพิ่มบัญชีผู้ใช้ลงในadminกลุ่ม

หากคุณไม่ต้องการให้สิทธิ์การเข้าถึงรูทแบบเต็มของบัญชีผู้ใช้คุณต้องแก้ไขไฟล์ / etc / sudoer ด้วย visudo (ทำให้แน่ใจว่าคุณไม่มีข้อผิดพลาดทางไวยากรณ์ในไฟล์และสูญเสียความสามารถ sudo ไป) ที่คุณระบุสิ่งที่คำสั่งผู้ใช้นี้ (หรือกลุ่มใหม่) สามารถดำเนินการในฐานะรูท

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


1
ฉันคิดว่านั่นคือสิ่งที่wheelกลุ่มมีไว้เพื่ออะไร?
Marco Ceppi

@Marco ฉันไม่คุ้นเคยกับสิ่งนั้น คุณช่วยอธิบายอีกเล็กน้อยได้ไหม?
ændrük

@MarcoCeppi กลุ่มล้อถูกนำมาใช้ในบางระบบที่จะ จำกัด suสิ่งที่ผู้ใช้สามารถใช้ Ubuntu ใช้sudoและกลุ่มผู้ดูแลระบบ
psusi


10

ตัวอย่างต่อไปนี้ให้สิทธิ์การเข้าถึงรูทชื่อผู้ใช้โดยไม่ต้องเข้าสู่ระบบในฐานะรูท

ตรวจสอบให้แน่ใจว่าผู้ใช้ถูกเพิ่มในกลุ่ม sudo ก่อน ทดสอบบน Ubuntu 16.04.1 LTS

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"

ทำงานบน Ubuntu ได้ไหม
jowan sebastian

1
ใช่ได้รับการตรวจสอบบน Ubuntu 16.04
Sandeep

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