วิธีเพิ่มผู้ใช้ในไฟล์ sudoers ใน Linux

เผยแพร่แล้ว: 2022-11-02
แล็ปท็อป Linux แสดง bash prompt
fatmawati achmad zaenuri/Shutterstock.com
หากคุณได้รับแจ้งว่าผู้ใช้ "ไม่อยู่ในไฟล์ sudoers" คุณสามารถให้สิทธิ์ sudo แก่ผู้ใช้ได้อย่างเต็มที่ด้วยคำสั่ง usermod ในการควบคุมสิ่งที่ผู้ใช้สามารถทำได้ด้วย sudo ให้แก้ไขไฟล์ sudoers ด้วย visudo

คนที่สามารถใช้คำสั่ง sudo ของ Linux ได้นั้นเป็นสมาชิกของสโมสรขนาดเล็กและเลือก ซึ่งบางครั้งเรียกว่ารายการ "sudoers" สมาชิกแต่ละคนมีพลังเท่ากับ root ท แล้วคุณจะเข้าร่วมคลับนั้นได้อย่างไร? เราจะพูดถึงการเพิ่มบุคคลใน sudoers ตลอดจนแก้ไขไฟล์ sudoers เพื่อจำกัดการอนุญาต

สารบัญ

sudo: พลังพิเศษ Alter-Ego . ของคุณ
ไฟล์ sudoers และ visudo
เพิ่มผู้ใช้ sudo ใหม่ใน Ubuntu และ Linux Distros อื่น ๆ
จำกัดสิทธิ์ sudo โดยการแก้ไขไฟล์ sudoers
ใครก็ตามที่ถือคำสั่งนี้

sudo: พลังพิเศษ Alter-Ego . ของคุณ

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

พลังระดับนี้อันตราย หาก root ททำผิดพลาด ผลลัพธ์ก็อาจเป็นหายนะได้ พวกเขามีความสามารถในการเมาต์และยกเลิกการต่อเชื่อมระบบไฟล์ และเขียนทับได้ทั้งหมด วิธีทำงานที่ปลอดภัยกว่ามากคือไม่ต้องเข้าสู่ระบบในฐานะ root

8 วิธีในการปรับแต่งและกำหนดค่า Sudo บน Ubuntu
ที่เกี่ยวข้อง 8 วิธีในการปรับแต่งและกำหนดค่า Sudo บน Ubuntu

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

คำสั่ง sudo เทียบเท่ากับ Linux กับการตะโกนว่า "Shazam" เมื่อเรื่องที่น่ากลัวจบลง คุณละทิ้งอัตตาที่มีพลังมหาศาลและกลับไปสู่ความธรรมดาที่น่าเบื่อหน่าย

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

การกระจาย Linux สมัยใหม่ให้สิทธิ์ sudo แก่บัญชีผู้ใช้ที่สร้างขึ้นระหว่างขั้นตอนการตั้งค่าคอนฟิกการติดตั้งหรือหลังการติดตั้ง หากใครก็ตามพยายามใช้ sudo พวกเขาจะเห็นข้อความเตือนดังนี้:

 แมรี่ไม่อยู่ในไฟล์ sudoers เหตุการณ์นี้จะถูกรายงาน

ที่ดูเหมือนธรรมดาเพียงพอ ผู้ใช้ mary ของเราไม่สามารถใช้ sudo ได้ เนื่องจากเธอไม่ได้อยู่ใน "ในไฟล์ sudoers" มาดูกันว่าเราจะเพิ่มเธอได้อย่างไร

ที่เกี่ยวข้อง: วิธีควบคุมการเข้าถึง sudo บน Linux

ไฟล์ sudoers และ visudo

ก่อนที่ใครจะสามารถใช้คำสั่ง sudo เราต้องทำงานกับ sudoers แสดงรายการกลุ่มผู้ใช้ของผู้ใช้ที่สามารถใช้ sudo หากเราต้องแก้ไขไฟล์ เราต้องแก้ไข

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

โปรดทราบว่า visudo ไม่ใช่โปรแกรมแก้ไข แต่จะเปิดใช้ตัวแก้ไขที่มีอยู่ตัวใดตัวหนึ่งของคุณ บน Ubuntu 22.04, Fedora 37 และ Manjaro 21 visudo ได้เปิดตัว nano นั่นอาจไม่ใช่กรณีบนคอมพิวเตอร์ของคุณ

หากเราต้องการให้สิทธิ์การเข้าถึง sudo แก่ผู้อื่น เราจำเป็นต้องอ้างอิงข้อมูลบางส่วนจาก sudoers เท่านั้น หากเราต้องการให้ละเอียดยิ่งขึ้นและให้ความสามารถของ root แก่ผู้ใช้ เราจำเป็นต้องแก้ไขไฟล์และบันทึกการเปลี่ยนแปลง

ไม่ว่าจะด้วยวิธีใด เราต้องใช้ visudo

ที่เกี่ยวข้อง: วิธีออกจาก Vi หรือ Vim Editor

เพิ่มผู้ใช้ sudo ใหม่ใน Ubuntu และ Linux Distros อื่น ๆ

เรามีผู้ใช้สองคนที่ต้องการเข้าถึงสิทธิ์รูทเพื่อดำเนินการตามบทบาทหน้าที่ของตน พวกเขาคือทอมและแมรี่ แมรี่ต้องมีสิทธิ์เข้าถึงทุกสิ่งที่ root ททำได้ Tom จำเป็นต้องติดตั้งแอปพลิเคชั่นเท่านั้น

มาเพิ่ม Mary ในกลุ่ม sudoers ก่อน เราต้องเริ่ม visudo

 sudo visudo 

เปิดตัว visudo บน Ubuntu Linux

เลื่อนลงมาในตัวแก้ไขจนกว่าคุณจะเห็นส่วน "ข้อกำหนดสิทธิ์ของผู้ใช้" มองหาความคิดเห็นที่คล้ายกับ "อนุญาตให้สมาชิกของกลุ่มนี้ดำเนินการคำสั่งใดๆ"

ไฟล์ sudoers เปิดในโปรแกรมแก้ไขนาโน

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

วิธีเปลี่ยนข้อมูลผู้ใช้ด้วย chfn และ usermod บน Linux
ที่เกี่ยวข้อง วิธีเปลี่ยนข้อมูลผู้ใช้ด้วย chfn และ usermod บน Linux

เรากำลังใช้คำสั่ง usermod พร้อมตัวเลือก -a (ต่อท้าย) และ -G (ชื่อกลุ่ม) ตัวเลือก -G ช่วยให้เราสามารถตั้งชื่อกลุ่มที่เราต้องการเพิ่มผู้ใช้ได้ และตัวเลือก -a จะบอกให้ผู้ใช้ usermod เพิ่มกลุ่มใหม่ลงในรายการกลุ่มที่มีอยู่ที่ผู้ใช้รายนี้อยู่แล้ว

หากคุณไม่ได้ใช้ตัวเลือก -a กลุ่มเดียวที่ผู้ใช้ของคุณจะอยู่คือกลุ่มที่เพิ่มใหม่ ตรวจสอบอีกครั้ง และตรวจสอบให้แน่ใจว่าคุณได้รวมตัวเลือก -a

 sudo usermod -aG sudo mary 

การใช้ usermod เพื่อเพิ่มผู้ใช้ mary ในกลุ่ม sudo

ครั้งต่อไปที่ Mary เข้าสู่ระบบ เธอจะสามารถเข้าถึง sudo ได้ เราเข้าสู่ระบบของเธอแล้ว และกำลังพยายามแก้ไขไฟล์ตารางระบบไฟล์ “/etc/fstab” นี่คือไฟล์ที่ไม่อยู่ในขอบเขตสำหรับทุกคนยกเว้น root

 sudo nano /etc/fstab 

การใช้ usermod เพื่อเพิ่มผู้ใช้ mary ในกลุ่ม sudo

โปรแกรมแก้ไข nano จะเปิดขึ้นพร้อมกับไฟล์ "/ etc / fstab" ที่โหลด

ผู้ใช้แมรี่แก้ไขไฟล์ /etc/fstab โดยใช้ sudo

หากไม่มีสิทธิ์ sudo คุณจะสามารถเปิดไฟล์นี้เป็นไฟล์แบบอ่านอย่างเดียวได้เท่านั้น แมรี่ไม่มีข้อจำกัดเหล่านั้นอีกต่อไป เธอสามารถบันทึกการเปลี่ยนแปลงใดๆ ที่เธอทำ

ปิดตัวแก้ไขและ อย่า บันทึกการเปลี่ยนแปลงใดๆ ที่คุณได้ทำไว้

จำกัดสิทธิ์ sudo โดยการแก้ไขไฟล์ sudoers

ทอม ผู้ใช้รายอื่นของเรา จะได้รับอนุญาตให้ติดตั้งซอฟต์แวร์ แต่เขาจะไม่ได้รับสิทธิพิเศษทั้งหมดที่แมรี่มอบให้

เราจำเป็นต้องแก้ไข sudoers

 sudo visudo 

เปิดตัว visudo บน Ubuntu Linux

เลื่อนลงมาในตัวแก้ไขจนกว่าคุณจะเห็นส่วน "ข้อกำหนดสิทธิ์ของผู้ใช้" มองหาความคิดเห็นที่คล้ายกับ "อนุญาตให้สมาชิกของกลุ่มนี้ดำเนินการคำสั่งใดๆ" เป็นจุดเดียวกันในไฟล์ที่เราพบชื่อของกลุ่มที่เราต้องการจะเพิ่ม Mary เข้าไป

เพิ่มบรรทัดเหล่านี้ด้านล่างส่วนนั้น

 #ผู้ใช้ทอมสามารถติดตั้งซอฟต์แวร์ได้
tom ALL=(root) /usr/bin/apt 

การเพิ่มรายการใหม่ในไฟล์ sudoers

บรรทัดแรกเป็นความคิดเห็นง่ายๆ โปรดทราบว่ามีแท็บระหว่างชื่อผู้ใช้ "ทอม" กับคำว่า "ทั้งหมด"

นี่คือสิ่งที่รายการในบรรทัดหมายถึง

  • tom : ชื่อของ กลุ่มเริ่มต้น ของผู้ใช้ โดยปกติแล้วจะเหมือนกับชื่อบัญชีผู้ใช้ของพวกเขา
  • ALL= : กฎนี้ใช้กับโฮสต์ทั้งหมดในเครือข่ายนี้
  • (รูท) : สมาชิกของกลุ่ม “ทอม”—นั่นคือ ผู้ใช้ทอม—สามารถรับสิทธิ์ root ท สำหรับคำสั่งที่แสดง
  • /usr/bin/apt : นี่เป็นคำสั่งเดียวที่ผู้ใช้ Tom สามารถเรียกใช้ในฐานะ root ได้

เราได้ระบุ apt package manager ที่นี่ เนื่องจากคอมพิวเตอร์เครื่องนี้ใช้ Ubuntu Linux คุณต้องแทนที่ด้วยคำสั่งที่เหมาะสมหากคุณใช้การแจกจ่ายอื่น

เข้าสู่ระบบ Tom และดูว่าเราได้รับพฤติกรรมที่คาดหวังหรือไม่ เราจะพยายามแก้ไขไฟล์ “/etc/fstab”

 sudo nano /etc/fstab 

กำลังพยายามแก้ไขไฟล์ /etc/fstab โดยไม่มีสิทธิ์ sudo

คำสั่งนั้นถูกปฏิเสธ และเราได้รับแจ้งว่า “user tom ไม่ได้รับอนุญาตให้ดำเนินการ '/usr/bin/nano /etc/fstab' ในฐานะ root …”

นั่นคือสิ่งที่เราต้องการ ผู้ใช้ Tom ควรจะสามารถใช้ apt package manager ได้เท่านั้น มาทำให้แน่ใจว่าพวกเขาสามารถทำเช่นนั้นได้

 sudo apt ติดตั้ง neofetch 

ผู้ใช้ Tom ใช้คำสั่ง apt กับ sudo

คำสั่งดำเนินการสำเร็จสำหรับ Tom

ใครก็ตามที่ถือคำสั่งนี้

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

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

ที่เกี่ยวข้อง: วิธีตรวจสอบการใช้คำสั่ง sudo บน Linux