สิทธิ์ Root ใน Linux: มันคืออะไร มีไว้ทำอะไร และวิธีการใช้งานอย่างปลอดภัย

การปรับปรุงครั้งล่าสุด: 17 เดือนมีนาคมของ 2026
  • Root คือผู้ใช้ระดับสูงสุดของ Linux ที่มีอำนาจควบคุมระบบอย่างสมบูรณ์ เหนือกว่าข้อจำกัดด้านสิทธิ์การเข้าถึงใดๆ ทั่วไป
  • โดยปกติแล้วจะไม่ล็อกอินด้วยสิทธิ์ root แต่จะใช้คำสั่ง sudo หรือ su เพื่อขอสิทธิ์ระดับสูงในลักษณะที่ควบคุมได้และชั่วคราว
  • การใช้สิทธิ์ root อย่างไม่ระมัดระวังอาจล้างข้อมูลในระบบ ติดตั้งมัลแวร์ หรือทำลายระบบรักษาความปลอดภัย ดังนั้นจึงควรลดการใช้งานให้น้อยที่สุดและตรวจสอบคำสั่งต่างๆ อย่างรอบคอบ
  • การตั้งค่า sudoers อย่างถูกต้อง การล็อกบัญชี root และการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด จะช่วยให้การบริหารจัดการ Linux มีความปลอดภัยและตรวจสอบได้

ผู้ใช้ root ใน Linux ใช้ทำอะไร?

หากคุณเคยใช้ Windows มาก่อน (ดูบัญชีผู้ใช้ใน Windows ) และมาใช้ Linux คำว่าผู้ใช้ root อาจฟังดูงงๆ แต่จริงๆ แล้วมันคือองค์ประกอบสำคัญที่แยกความแตกต่างระหว่างระบบที่เสถียรและปลอดภัยกับระบบที่ล่มสลายโดยสิ้นเชิง ผู้ใช้ root คือ "หัวหน้าสูงสุด" ของระบบ ผู้ที่สามารถติดตั้ง ลบ ทำลาย และซ่อมแซมอะไรก็ได้โดยไม่ต้องขออนุญาต

การเข้าใจวัตถุประสงค์ของสิทธิ์ root ใน Linux ความสัมพันธ์กับคำสั่ง `sudo` และ `su` และความเสี่ยงที่เกี่ยวข้องนั้นเป็นสิ่งสำคัญสำหรับการจัดการระบบของคุณ ไม่ว่าจะเป็นแล็ปท็อปที่บ้านหรือเซิร์ฟเวอร์สำหรับการใช้งานจริง บทความนี้จะอธิบายอย่างละเอียดและใช้ภาษาที่เข้าใจง่ายว่า root คืออะไร วิธีการใช้งานในระบบปฏิบัติการต่างๆ (โดยเฉพาะ Ubuntu) อันตรายที่อาจเกิดขึ้น และแนวทางปฏิบัติที่ดีที่สุดเพื่อหลีกเลี่ยงไม่ให้เครื่องของคุณใช้งานไม่ได้

ผู้ใช้ root ใน Linux คืออะไร และอะไรที่ทำให้มันพิเศษ?

ในระบบ GNU/Linux ใดๆ จะมีผู้ใช้ที่มีสิทธิ์เต็มที่เรียกว่า root หรือที่รู้จักกันในชื่อ superuserผู้ใช้นี้มี UID 0 และไม่ถูกจำกัดด้วยสิทธิ์การเข้าถึงไฟล์และกระบวนการตามปกติ กล่าวคือ สามารถอ่าน แก้ไข หรือลบไฟล์ใดๆ ติดตั้งหรือถอนการติดตั้งซอฟต์แวร์ เปลี่ยนการตั้งค่าระบบ จัดการผู้ใช้รายอื่น และเข้าถึงบริการที่สำคัญได้

ถ้าเปรียบเทียบกับ Windows แล้ว สิทธิ์ root ก็เทียบเท่ากับสิทธิ์ Administrator แต่มีอำนาจมากกว่านั้นอีกเนื่องจากใน Linux รูปแบบการอนุญาตสิทธิ์มีความละเอียดกว่า และการแยกผู้ใช้กับบริการนั้นเข้มงวดกว่ามาก ในขณะที่ผู้ใช้ทั่วไปมีข้อจำกัดในการกระทำต่างๆ ในเส้นทางเช่น /etc, /usr, /var o /bootสิทธิ์ Root ช่วยให้คุณเข้าถึงทุกที่โดยไม่ต้องขออนุญาต

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

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

ในระบบปฏิบัติการ Linux รุ่นใหม่ๆ หลายรุ่น โดยเฉพาะ Ubuntu และระบบปฏิบัติการที่พัฒนาต่อยอดจาก Ubuntu นั้น การล็อกอินโดยตรงด้วยสิทธิ์ root ถูกปิดใช้งานไว้แต่ในระหว่างการติดตั้ง ระบบจะสร้างผู้ใช้ทั่วไปขึ้นมา ซึ่งเป็นสมาชิกของกลุ่มผู้ดูแลระบบ (ตัวอย่างเช่น sudo o admin) และคำสั่งนั้นถูกใช้ sudo เพื่อดำเนินการด้านการบริหารจัดการโดยการขอรหัสผ่านของคุณเอง ไม่ใช่รหัสผ่านของผู้ดูแลระบบ (root password)

ผู้ใช้ระดับสูงสุด root ใน Linux

ความแตกต่างระหว่างผู้ใช้ทั่วไป ผู้ใช้ระดับ root และกลุ่ม sudo

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

ผู้ใช้งานทั่วไปนี่คือเรื่องราวจากผู้ที่ใช้งานระบบนี้ พวกเขามี... หน้าแรก พวกเขาสามารถติดตั้งโปรแกรมในไดเร็กทอรีของตนเอง เรียกใช้แอปพลิเคชันบนเดสก์ท็อป บันทึกเอกสาร ฯลฯ ได้ อย่างไรก็ตาม พวกเขาไม่สามารถปฏิบัติงานด้านการบริหารระบบได้ วิธีการติดตั้งแพ็กเกจทั่วโลก และแก้ไขการตั้งค่าต่างๆ /etc หรือจัดการผู้ใช้รายอื่น เว้นแต่พวกเขาจะใช้ sudo o su.

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

ผู้ดูแลระบบ (sudoers): คือผู้ใช้ทั่วไปที่อยู่ในกลุ่มพิเศษ (โดยปกติ) sudo o admin) และ พวกเขามีสิทธิ์ในการเรียกใช้คำสั่งในฐานะผู้ใช้ระดับ root โดยใช้ sudoตัวอย่างเช่น การเพิ่มผู้ใช้เข้าในกลุ่ม sudo คุณสามารถใช้สิ่งนี้ได้:
sudo usermod -aG sudo nombreusuario

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

ในทางปฏิบัติ รากคืออะไร และใช้เพื่ออะไร?

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

ติดตั้งหรือถอนการติดตั้งซอฟต์แวร์ระบบโปรแกรมจัดการแพ็กเกจ (เช่น) apt, dnf o pacmanพวกเขาจำเป็นต้องเขียนข้อมูลลงในเส้นทางที่ได้รับการป้องกัน ดังนั้น พวกเขามักจะเรียกใช้ด้วยสิทธิ์ระดับสูงสุดเสมอตัวอย่างทั่วไปได้แก่:
sudo apt install vlc

แก้ไขไฟล์การกำหนดค่าระบบบริการและโปรแกรมของระบบส่วนใหญ่ได้รับการกำหนดค่าผ่านไฟล์ข้อความในไดเร็กทอรีต่างๆ เช่น /etcในการเปิดและบันทึกไฟล์เหล่านี้ด้วยโปรแกรมแก้ไขข้อความ คุณต้องมีสิทธิ์การเข้าถึงระดับสูง ตัวอย่างเช่น:
sudo nano /etc/hosts

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

ดำเนินการคำสั่งที่อาจเป็นอันตราย. เครื่องมือเช่น rm (ลบ), chmod (เปลี่ยนแปลงการอนุญาต) chown (เปลี่ยนเจ้าของ) หรือ mkfs การจัดรูปแบบอาจก่อให้เกิดความเสียหายอย่างมากหากใช้ไม่ถูกต้อง ระบบต้องการสิทธิ์ระดับรูทสำหรับการดำเนินการที่ส่งผลกระทบต่อไฟล์หรืออุปกรณ์สำคัญ เพื่อป้องกันไม่ให้ผู้ใช้ทั่วไปทำลายระบบโดยไม่ตั้งใจ

  โปรแกรมดักจับข้อมูล WebRTC ที่หลบเลี่ยงการควบคุมและขโมยข้อมูลในอีคอมเมิร์ซ

จัดการการเริ่มต้น การปิดเครื่อง และการรีสตาร์ทเครื่อง. คำสั่งเช่น reboot, poweroff หรือการจัดการขั้นสูงของ systemctl เกี่ยวกับบริการระบบ นอกจากนี้ยังต้องการสิทธิ์ผู้ใช้ระดับสูงสุดด้วย. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ systemd และการจัดการบริการของมัน คุณสามารถศึกษาเอกสารเฉพาะทางได้ หรือไม่เช่นนั้น ผู้ใช้รายใดก็สามารถรีสตาร์ทเซิร์ฟเวอร์ใช้งานจริงได้ทุกเมื่อที่ต้องการ

ในทางปฏิบัติ หากเกิดข้อผิดพลาด "permission denied" บน Linux แสดงว่าคุณอาจต้องเรียกใช้โปรแกรมนั้นด้วยสิทธิ์ผู้ดูแลระบบ (root privileges) การใช้ sudo หรือเปลี่ยนไปใช้สิทธิ์ผู้ใช้ระดับสูงสุดชั่วคราวด้วย su.

คำสั่ง sudo และ su: ควรใช้คำสั่งใดในสถานการณ์ใด

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

sudo (คำสั่ง `superuser do`) ใช้สำหรับเรียกใช้คำสั่งเดียวด้วยสิทธิ์ของผู้ใช้อื่น ซึ่งโดยปกติคือ rootคุณไม่ได้สลับเซสชัน คุณไม่ได้กลายเป็นผู้ใช้ระดับรูท "สำหรับทุกอย่าง" มีเพียงคำสั่งเฉพาะนั้นเท่านั้นที่จะถูกเรียกใช้ด้วยสิทธิ์ระดับสูง ตัวอย่างเช่น:
sudo apt install gparted

ทุกครั้งที่คุณใช้ sudo ระบบจะขอให้คุณป้อนรหัสผ่าน (หากคุณยังไม่ได้ป้อนเมื่อเร็ว ๆ นี้)หลังจากไม่มีการใช้งานเพียงไม่กี่นาที "ตั๋ว" ของ sudo จะหมดอายุ และคุณจะต้องยืนยันตัวตนอีกครั้ง ซึ่งเป็นการเพิ่มระดับความปลอดภัยที่สำคัญอีกชั้นหนึ่ง

su (“สลับผู้ใช้”) จะเปลี่ยนข้อมูลประจำตัวผู้ใช้ของคุณภายในเซสชันเดียวกันหากคุณใช้คำสั่งนี้โดยไม่ระบุอาร์กิวเมนต์ คุณจะได้รับสิทธิ์ผู้ดูแลระบบ (ระบบจะขอรหัสผ่านของผู้ดูแลระบบ) และคำสั่งทั้งหมดที่ตามมาจะถูกดำเนินการด้วยสิทธิ์เหล่านั้นจนกว่าคุณจะออกจากโปรแกรม exit. ตัวอย่างเช่น
su
Contraseña:
whoami # devuelve 'root'

คุณยังสามารถใช้ su nombreusuario เพื่อเปลี่ยนจากผู้ใช้คนหนึ่งไปยังอีกคนหนึ่งโดยมีเงื่อนไขว่าคุณต้องทราบรหัสผ่านของบัญชีปลายทาง การดำเนินการนี้จะเปลี่ยนสภาพแวดล้อมทั้งหมดให้เหมือนกับของผู้ใช้ใหม่ (ตัวแปรต่างๆ) หน้าแรกฯลฯ) แนะนำให้ใช้ su - o su - nombreusuario.

โดยทั่วไปแล้ว การใช้วิธีนี้ถือว่าปลอดภัยกว่าและเหมาะสมกว่า sudo สำหรับคำสั่งเฉพาะ และหันไปพึ่ง su ใช้เฉพาะเมื่อคุณจำเป็นต้องใช้งานสิทธิ์ root เป็นเวลานานจริงๆ (เช่น ในงานกู้คืนระบบหรือการบำรุงรักษาที่ซับซ้อน)

ลักษณะเฉพาะของ root ใน Ubuntu และระบบปฏิบัติการที่พัฒนาต่อยอดจาก Ubuntu

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

แต่ Ubuntu เลือกใช้การใช้งานอย่างเข้มข้นแทน sudoในระหว่างกระบวนการติดตั้ง ระบบจะสร้างผู้ดูแลระบบขึ้นมา ซึ่งเป็นสมาชิกของกลุ่มดังกล่าว sudoจากนั้น งานด้านการบริหารทั้งหมดจะดำเนินการด้วย:
sudo comando

หากคุณต้องการสิทธิ์เข้าถึงระดับ root อย่างเต็มรูปแบบใน Ubuntu คุณมีตัวเลือกที่ปลอดภัยหลายอย่าง:
sudo -i # เปิดเซสชันการเข้าสู่ระบบระดับ root
sudo su - # สลับไปใช้สิทธิ์ root พร้อมสภาพแวดล้อมการเข้าสู่ระบบ

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

แม้จะไม่แนะนำ แต่คุณสามารถเปิดใช้งานผู้ใช้ root ใน Ubuntu ได้โดยการกำหนดรหัสผ่านให้ ด้วย:
sudo passwd root
หลังจากป้อนและยืนยันรหัสผ่านใหม่แล้ว สิทธิ์การเข้าถึงระดับรูทจะถูก "ปลดล็อก" และจะสามารถใช้งานได้ เช่น การเข้าถึงฟังก์ชันต่างๆ su โดยไม่ต้องใช้คำสั่ง sudo ก่อน หรือแม้กระทั่งอนุญาตให้ล็อกอินโดยตรงผ่าน TTY หรือ SSH (ซึ่งไม่แนะนำอย่างยิ่งในเซิร์ฟเวอร์ที่มีความเสี่ยงสูง)

ความเสี่ยงที่แท้จริงของการใช้รากไม้โดยไม่ระมัดระวัง

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

ความเสี่ยงหลักประการแรกคือการลบหรือทำให้ระบบไฟล์เสียหายโดยไม่ตั้งใจคำสั่งต่างๆ เช่น:
rm -rf /
rm -rf /*
หรือแม้แต่โครงสร้างที่ละเอียดอ่อนกว่านั้น เช่น:
rm -rf "$directorio"/*
พวกมันสามารถทำลายระบบทั้งหมดได้ในเวลาเพียงไม่กี่วินาที หากเรียกใช้ในฐานะผู้ใช้ root และเส้นทางที่ป้อนไม่ตรงกับที่คุณคิดบางครั้ง แค่ตัวแปรว่างเปล่า เครื่องหมายทับผิดที่ หรือการกดปุ่ม Tab ผิดที่ ก็อาจทำให้คำสั่งที่ดูเหมือนไม่มีพิษภัยกลายเป็นหายนะได้

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

  ความสำคัญของการสำรองข้อมูล: สร้างความต่อเนื่องของธุรกิจของคุณ

นอกจากนี้ การแก้ไขสิทธิ์การเข้าถึงไฟล์ที่สำคัญก็สามารถทำให้ระบบรักษาความปลอดภัยเสียหายได้ค่อนข้างง่ายเช่นกันตัวอย่างเช่น หากคุณรันคำสั่งประมาณนี้:
chmod 000 /etc -R
หรือคุณเปลี่ยนสิทธิ์การเข้าถึงของ /boot หรือ /etc/passwd โดยไม่รู้ว่าตัวเองกำลังทำอะไรอยู่ คุณสามารถทำให้เครื่องไม่สามารถบูตได้ หรือทำให้การตรวจสอบสิทธิ์ผู้ใช้เป็นไปไม่ได้ในหลายกรณี วิธีแก้ปัญหาเดียวคือการใช้ LiveCD หรือแม้กระทั่งการติดตั้งระบบใหม่

จากมุมมองด้านความปลอดภัย การใช้งานในฐานะผู้ใช้ root ตลอดเวลาทำให้บัญชีนั้นกลายเป็นจุดอ่อนเพียงจุดเดียวหากผู้โจมตีได้รับสิทธิ์เข้าถึง root (ผ่านการโจมตีแบบ Brute Force, Phishing, มัลแวร์ ฯลฯ) พวกเขาจะมีอำนาจควบคุมอย่างสมบูรณ์: พวกเขาสามารถเข้ารหัสดิสก์ ขโมยข้อมูล เข้าร่วมบอทเน็ต หรือใช้เซิร์ฟเวอร์ของคุณเพื่อโจมตีบุคคลที่สาม เพื่อลดความเสี่ยงเหล่านี้ คุณควรศึกษาเทคนิคการเสริมความแข็งแกร่งด้วย SELinuxและกลไกการป้องกันอื่นๆ

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

แสดงเครื่องหมายดอกจันเมื่อพิมพ์รหัสผ่าน sudo

โดยปกติแล้ว เมื่อคุณป้อนรหัสผ่าน sudo ในระบบปฏิบัติการหลายๆ ระบบ (เช่น Ubuntu) คุณจะไม่เห็นจุดหรือเครื่องหมายดอกจันใดๆนี่เป็นมาตรการรักษาความปลอดภัยเพื่อป้องกันไม่ให้ใครก็ตามเดาความยาวของรหัสผ่านของคุณได้เพียงแค่ดูที่หน้าจอ แต่ในทางปฏิบัติแล้วมันค่อนข้างไม่สะดวก: คุณพิมพ์ไปแล้วดูเหมือนจะไม่มีอะไรเกิดขึ้น

ระยะหนึ่งแล้วที่คำสั่ง sudo อนุญาตให้เปิดใช้งานพฤติกรรมที่เรียกว่า pwfeedbackโปรแกรมนี้จะแสดงเครื่องหมายดอกจัน (*) สำหรับทุกตัวอักษรที่คุณพิมพ์ มันไม่ได้เปิดเผยรหัสผ่านของคุณ แต่เป็นการยืนยันว่าแป้นพิมพ์ตอบสนอง และช่วยให้คุณตรวจจับข้อผิดพลาดในการพิมพ์ได้

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

1. เปิดการตั้งค่า sudo:
sudo visudo

2. เพิ่มบรรทัด:
Defaults pwfeedback

3.บันทึกและออกจากโปรแกรมแก้ไข

นับจากนั้นเป็นต้นไป ทุกครั้งที่คุณป้อนรหัสผ่าน sudo เครื่องหมายดอกจันจะปรากฏขึ้นหากคุณต้องการกลับไปใช้การทำงานแบบเดิมเมื่อใดก็ตาม เพียงลบบรรทัดนั้นออกโดยใช้คำสั่ง `return` visudo.

ปิดใช้งานหรือบล็อกบัญชีผู้ใช้ระดับรูท

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

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

ในการล็อกบัญชีผู้ใช้ root ในระบบปฏิบัติการ Linux หลายๆ รุ่น เพียงแค่รันคำสั่งนี้:
sudo passwd -l root

คำสั่งนี้จะ "ตรึง" รหัสผ่าน root ไว้เพื่อไม่ให้สามารถใช้งานได้หากคุณต้องการเปิดใช้งานอีกครั้งในภายหลัง คุณจะต้องตั้งรหัสผ่านใหม่โดยใช้รูปแบบดังต่อไปนี้:
sudo passwd root

กู้คืนหรือเปลี่ยนรหัสผ่าน root ของคุณ หากคุณลืมรหัสผ่าน

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

วิธีที่นิยมใช้กันมากวิธีหนึ่งคือการทำจาก GRUB โดยใช้โหมดกู้คืนระบบปฏิบัติการหลายๆ ตัวจะมีรายการ "ตัวเลือกขั้นสูง" ที่คุณสามารถเลือก "โหมดกู้คืน" ได้ การเลือกโหมดนี้จะโหลดสภาพแวดล้อมแบบจำกัดที่มีตัวเลือกการกู้คืน

หากคุณเลือกที่จะเข้าถึงคอนโซลระดับรูทในโหมดกู้คืนขั้นตอนมาตรฐานโดยทั่วไปจะเป็นดังนี้:

1. ติดตั้งระบบไฟล์โดยกำหนดสิทธิ์ในการเขียน:
mount -o rw,remount /

2. ตั้งรหัสผ่านใหม่ให้กับสิทธิ์ root:
passwd root

3. ซิงโครไนซ์ข้อมูลและรีสตาร์ทเพื่อใช้การเปลี่ยนแปลง:
sync
reboot

อีกวิธีหลักคือการบูตจาก LiveCD หรือ LiveUSB ของระบบปฏิบัติการ Linux (เช่น Ubuntu ในโหมด "ลองใช้โดยไม่ต้องติดตั้ง") และทำงานกับระบบที่ติดตั้งแล้วจากภายนอก

ในกรณีทั่วไปของการใช้ LiveCD ขั้นตอนจะเป็นดังนี้:

1. เปิดเทอร์มินัลและขอรับสิทธิ์เข้าถึงระบบในฐานะผู้ใช้ระดับรูทชั่วคราว:
sudo su

2. ระบุพาร์ติชันที่มีระบบ Linux ของคุณโดยใช้คำสั่งประมาณนี้:
fdisk -l

3. ติดตั้งพาร์ติชันนั้นในไดเร็กทอรีทำงาน (ตัวอย่างเช่น การใช้ /dev/sda1):
mkdir /mnt/recover
mount /dev/sda1 /mnt/recover

4. เปลี่ยนไดเร็กทอรีรากของระบบไปยังไดเร็กทอรีที่เมานต์ไว้ด้วย chroot:
chroot /mnt/recover

5. จากนั้นใช้ passwd root ตั้งรหัสผ่านใหม่ และหลังจากออกจากระบบและรีสตาร์ทแล้ว คุณจะสามารถเข้าสู่ระบบได้ตามปกติ

ไฟล์ /etc/sudoers และวิธีการปรับแต่งสิทธิ์ของผู้ใช้ root

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

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

  Windows GDID: ตัวติดตามที่มองไม่เห็นของ Microsoft

เนื้อหาโดยทั่วไปของ /etc/sudoers Ubuntu เวอร์ชันสะอาดจะมีบรรทัดที่คล้ายกับ:
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL

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

สำหรับการตั้งค่าขั้นสูงขึ้น sudoers ช่วยให้คุณสามารถกำหนดชื่อแทน (alias) สำหรับผู้ใช้ คำสั่ง และกลุ่มการเรียกใช้งานตัวอย่างเช่น:

User_Alias ADMINES = pepe, perico, andres
Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
Runas_Alias WEB = www-data, apache

ด้วยคำจำกัดความเหล่านี้ คุณสามารถให้สิทธิ์ผู้ดูแลระบบในการปิดหรือรีสตาร์ทระบบโดยไม่ต้องใช้รหัสผ่านได้ โดยมีกฎเกณฑ์ดังนี้:
ADMINES ALL = NOPASSWD: POWER

ป้ายกำกับเช่น NOPASSWD เครื่องมือเหล่านี้ช่วยให้คุณสามารถเรียกใช้คำสั่งบางอย่างด้วย sudo โดยไม่ต้องพิมพ์รหัสผ่านสิ่งนี้มีประโยชน์มากในสคริปต์อัตโนมัติ การเชื่อมต่อกับระบบอื่นๆ หรือคอมพิวเตอร์ส่วนบุคคลที่คุณเป็นผู้ใช้เพียงคนเดียว

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

การใช้สิทธิ์ root เพื่อจัดการไฟล์และสิทธิ์การเข้าถึงจากเทอร์มินัล

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

คำสั่งพื้นฐานบางคำสั่งที่ไวต่อการใช้งานเป็นพิเศษเมื่อเข้าถึงระดับ rootได้แก่:

ls: แสดงรายการไฟล์และไดเร็กทอรี ในฐานะผู้ใช้ root คุณจะเห็นไฟล์ที่ผู้ใช้รายอื่นไม่สามารถแสดงได้

cp y mvในการคัดลอกและย้ายไฟล์หรือไดเร็กทอรี ให้ใช้คำสั่ง `sudo` ตัวอย่างเช่น คุณสามารถใช้ `sudo` เพื่อย้ายฟอนต์จาก... Descargas ขึ้น /usr/share/fonts/ เพื่อให้ระบบทั้งหมดสามารถใช้งานได้

rm: ลบไฟล์และโฟลเดอร์ เมื่อใช้ร่วมกับ -r y -f การใช้งานไฟล์นี้ในฐานะผู้ใช้ root โดยไม่ตรวจสอบเส้นทางให้ถูกต้องนั้นอันตรายอย่างยิ่ง

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

ตัวอย่างทั่วไปของการใช้สิทธิ์ root ในการติดตั้งฟอนต์ระบบคือ :

sudo cp ~/Descargas/Underdog.ttf /usr/share/fonts/
sudo chmod 644 /usr/share/fonts/Underdog.ttf

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

แนวทางปฏิบัติที่ดีที่สุดเมื่อใช้งาน root, sudo และ su

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

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

ควรหลีกเลี่ยงการเรียกใช้สคริปต์จากแหล่งที่ไม่น่าเชื่อถือโดยใช้คำสั่ง `sudo` ทุกกรณีหากคุณดาวน์โหลดสคริปต์จากอินเทอร์เน็ตและสิ่งแรกที่เห็นคือ "เรียกใช้ด้วย `sudo`" ให้เปิดด้วยโปรแกรมแก้ไขข้อความและอ่านอย่างละเอียด หากคุณไม่เข้าใจว่าสคริปต์นั้นทำอะไร อย่าเรียกใช้มัน

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

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

ตรวจสอบบันทึกการตรวจสอบสิทธิ์ (/var/log/auth.log o journalctlวิธีนี้ช่วยให้คุณเห็นว่าใครกำลังใช้ sudo จากที่ไหน และใช้คำสั่งอะไรบ้าง เป็นวิธีง่ายๆ ในการตรวจจับพฤติกรรมที่ผิดปกติหรือการใช้สิทธิ์ในทางที่ผิด

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

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

โหมดเทพของลินุกซ์
บทความที่เกี่ยวข้อง:
โหมดเทพในลินุกซ์: สิทธิ์ระดับรูท ช่องโหว่ และอำนาจเบ็ดเสร็จ