วิธีตรวจสอบการใช้งานคำสั่ง sudo บน Linux
เผยแพร่แล้ว: 2022-08-24 คำสั่ง sudo
ให้ผู้ใช้ superuser หรือ root power ไม่ต้องสงสัยเลยว่าคุณให้คำพูดว่า "ด้วยพลังอันยิ่งใหญ่มาพร้อมความรับผิดชอบอันยิ่งใหญ่" ต่อไปนี้เป็นวิธีตรวจสอบว่าพวกเขาฟังหรือไม่
คำสั่ง sudo
คำสั่ง sudo
ย่อมาจาก "substitution user do" ช่วยให้ผู้มีอำนาจดำเนินการคำสั่งราวกับว่าพวกเขาเป็นผู้ใช้รายอื่น สามารถใช้พารามิเตอร์บรรทัดคำสั่ง ซึ่งหนึ่งในนั้นคือชื่อของผู้ใช้ที่คุณต้องการให้รันคำสั่งเป็น วิธีทั่วไปที่ใช้ sudo
คือการละเว้นตัวเลือกบรรทัดคำสั่งและใช้การดำเนินการเริ่มต้น สิ่งนี้จะรันคำสั่งอย่างมีประสิทธิภาพในฐานะผู้ใช้รูท
ในการใช้ sudo
ในลักษณะนี้ต้องได้รับอนุญาตเป็นพิเศษ เฉพาะผู้มีสิทธิพิเศษเท่านั้นที่สามารถใช้ sudo
เมื่อคุณติดตั้งลีนุกซ์รุ่นใหม่ คุณจะได้รับแจ้งให้ตั้งค่ารหัสผ่านรูทที่คุณสามารถใช้กับ sudo
ได้ อนุญาตให้ดำเนินการดังกล่าวให้กับผู้ใช้ทั่วไปที่คุณสร้างขึ้นระหว่างการติดตั้ง นี่เป็นวิธีที่ต้องการในการจัดการการเข้าถึงความสามารถของผู้ใช้รูท วิธีเก่าคือการสร้างผู้ใช้รูทและเข้าสู่ระบบในฐานะผู้ใช้เพื่อดูแลระบบของคุณ
นี่เป็นสถานการณ์ที่อันตราย มันง่ายที่จะลืม—หรือขี้เกียจเกินไป—ออกจากระบบและกลับเข้ามาใหม่ในฐานะผู้ใช้ปกติของคุณ เมื่อคุณไม่ต้องการสิทธิ์รูทอีกต่อไป ข้อผิดพลาดใดๆ ที่คุณทำในหน้าต่างเทอร์มินัลในฐานะรูทจะถูกดำเนินการ ไม่ว่าจะรุนแรงเพียงใด สิ่งที่จะถูกบล็อกโดยเชลล์หากผู้ใช้ปกติพยายามทำพวกเขาจะทำงานโดยไม่มีคำถามเมื่อรูทร้องขอ การใช้บัญชีรูทแทนบัญชีปกติก็มีความเสี่ยงด้านความปลอดภัยเช่นกัน
การใช้ sudo
เน้นที่จิตใจ คุณกำลังเข้าสู่น่านน้ำที่อันตรายเหมือนกัน แต่คุณกำลังเลือกที่จะทำเช่นนั้น และหวังว่าจะได้รับการดูแลเป็นอย่างดี คุณเรียกใช้สถานะ superuser ของคุณก็ต่อเมื่อคุณต้องการทำสิ่งที่ต้องการ
หากคุณเปิดการเข้าถึงรูทให้กับผู้ใช้รายอื่น คุณต้องการรู้ว่าพวกเขากำลังดูแลพวกเขามากพอๆ กับที่คุณทำ คุณไม่ต้องการให้พวกเขารันคำสั่งโดยประมาทเลินเล่อหรือเก็งกำไร ความสมบูรณ์และความเป็นอยู่ที่ดีของการติดตั้ง Linux ของคุณขึ้นอยู่กับผู้ใช้ที่มีสิทธิพิเศษซึ่งมีพฤติกรรมเคารพและมีความรับผิดชอบ
มีหลายวิธีในการตรวจสอบการใช้งานรูท
ไฟล์ auth.log
ดิสทริบิวชันบางรุ่นเก็บบันทึกการตรวจสอบสิทธิ์ไว้ในไฟล์ชื่อ “auth.log” ด้วยการถือกำเนิดและการดูดซึมอย่างรวดเร็วของ systemd
ความต้องการไฟล์ “auth.log” จึงถูกลบออกไป systemd-journal
daemon รวมบันทึกของระบบเป็นรูปแบบไบนารีใหม่และ journalctl
มีวิธีให้คุณตรวจสอบหรือซักถามบันทึก
หากคุณมีไฟล์ “auth.log” บนคอมพิวเตอร์ Linux ไฟล์นั้นอาจอยู่ในไดเร็กทอรี “/var/log/” แม้ว่าชื่อไฟล์และพาธบางรุ่นจะเป็น “/var/log/audit/audit” .บันทึก."
คุณสามารถเปิดไฟล์ในลักษณะนี้ less
อย่าลืมปรับพาธและชื่อไฟล์ให้เหมาะกับการแจกจ่ายของคุณ และเตรียมพร้อมในกรณีที่ Linux ของคุณไม่ได้สร้างไฟล์การตรวจสอบสิทธิ์ด้วยซ้ำ
คำสั่งนี้ทำงานบน Ubuntu 22.04
น้อย /var/log/auth.log
ไฟล์บันทึกถูกเปิดขึ้น และคุณสามารถเลื่อนดูไฟล์หรือใช้สิ่งอำนวยความสะดวกในการค้นหาที่มีอยู่ภายในน้อยกว่าเพื่อค้นหา "sudo"
แม้จะใช้สิ่งอำนวยความสะดวกในการค้นหา less
ก็อาจใช้เวลาสักครู่เพื่อค้นหารายการ sudo
ที่คุณสนใจ
สมมติว่าเราต้องการดูว่าผู้ใช้ชื่อ mary
ใช้ sudo
เพื่ออะไร เราสามารถค้นหาไฟล์บันทึกด้วย grep
สำหรับบรรทัดที่มี "sudo" จากนั้นไพพ์เอาต์พุตผ่าน grep
อีกครั้งและค้นหาบรรทัดที่มี "mary" อยู่ในนั้น
สังเกต sudo
ก่อน grep และ ก่อนชื่อไฟล์บันทึก
sudo grep sudo /var/log/auth.log | grep "แมรี่"
สิ่งนี้ทำให้เรามีบรรทัดที่มี "sudo" และ "mary" อยู่ในนั้น
เราจะเห็นได้ว่าผู้ใช้ mary
ได้รับสิทธิ์ sudo
เวลา 15:25 น. และเมื่อเวลา 15:27 น. เธอเปิดไฟล์ fstab
ในตัวแก้ไข นั่นคือประเภทของกิจกรรมที่รับประกันการดำน้ำลึกโดยเริ่มจากการแชทกับผู้ใช้
ใช้ journalctl
วิธีที่แนะนำบนการแจกแจง Linux ที่ใช้ systmd
คือการใช้คำสั่ง journalctl
เพื่อตรวจสอบบันทึกของระบบ
ถ้าเราส่งชื่อของโปรแกรมไปที่ journalctl
โปรแกรมจะค้นหาไฟล์บันทึกสำหรับรายการที่มีการอ้างอิงถึงโปรแกรมนั้น เนื่องจาก sudo
เป็นเลขฐานสองที่ "/usr/bin/sudo" เราจึงสามารถส่งต่อไปยัง journactl
ได้ ตัวเลือก -e
(สิ้นสุดเพจเจอร์) บอกให้ journalctl
เปิดเพจเจอร์ไฟล์เริ่มต้น ปกติจะ less
นี้ หน้าจอจะเลื่อนไปด้านล่างโดยอัตโนมัติเพื่อแสดงรายการล่าสุด
sudo journalctl -e /usr/bin/sudo
รายการบันทึกที่มีคุณสมบัติ sudo
อยู่ในรายการน้อยกว่า
ใช้ปุ่ม "RightArrow" เพื่อเลื่อนไปทางขวาเพื่อดูคำสั่งที่ใช้กับคำสั่ง sudo
แต่ละรายการ (หรือยืดหน้าต่างเทอร์มินัลของคุณให้กว้างขึ้น)
และเนื่องจากผลลัพธ์จะแสดงเป็น less
คุณจึงสามารถค้นหาข้อความ เช่น ชื่อคำสั่ง ชื่อผู้ใช้ และการประทับเวลา
ที่เกี่ยวข้อง: วิธีใช้ journalctl เพื่ออ่านบันทึกระบบ Linux
การใช้ยูทิลิตี้บันทึกของ GNOME
สภาพแวดล้อมเดสก์ท็อปแบบกราฟิกมักจะมีวิธีการตรวจสอบบันทึก เราจะดูยูทิลิตี้บันทึกของ GNOME ในการเข้าถึงยูทิลิตี้บันทึก ให้กดปุ่ม "Super" ทางด้านซ้ายของ "Spacebar"
พิมพ์ “logs” ในช่องค้นหา ไอคอน "บันทึก" จะปรากฏขึ้น
คลิกไอคอนเพื่อเปิดแอปพลิเคชัน "บันทึก"
การคลิกที่หมวดหมู่ในแถบด้านข้างจะกรองข้อความบันทึกตามประเภทข้อความ หากต้องการทำการเลือกที่ละเอียดยิ่งขึ้น ให้คลิกหมวดหมู่ “ทั้งหมด” ในแถบด้านข้าง จากนั้นคลิกไอคอนแว่นขยายบนแถบเครื่องมือ ป้อนข้อความค้นหา เราจะค้นหาคำว่า "sudo"
รายการเหตุการณ์ถูกกรองเพื่อแสดงเฉพาะเหตุการณ์ที่เกี่ยวข้องกับคำสั่ง sudo
บล็อกสีเทาขนาดเล็กที่ส่วนท้ายของแต่ละบรรทัดประกอบด้วยจำนวนรายการในเซสชันเหตุการณ์นั้น คลิกที่บรรทัดเพื่อขยาย
เราคลิกที่บรรทัดบนสุดเพื่อดูรายละเอียดของ 24 รายการในเซสชันนั้น
ด้วยการเลื่อนเพียงเล็กน้อย เราจะเห็นเหตุการณ์เดียวกับที่เราเห็นเมื่อเราใช้คำสั่ง journalctl
พบเซสชันการแก้ไขที่ไม่ได้อธิบายของผู้ใช้ mary
ในไฟล์ fstab
อย่างรวดเร็ว เราสามารถค้นหา "mary" ได้ แต่จะรวมถึงรายการอื่นที่ไม่ใช่ sudo
ที่เธอใช้
ไม่ใช่ทุกคนที่ต้องการการเข้าถึงรูท
ในกรณีที่มีข้อกำหนดที่สมเหตุสมผล การให้สิทธิ์ sudo
แก่ผู้ใช้รายอื่นก็สมเหตุสมผล ในทำนองเดียวกัน ควรตรวจสอบการใช้หรือการใช้อำนาจในทางที่ผิดโดยเฉพาะอย่างยิ่งหลังจากที่ได้รับมอบอำนาจเหล่านี้แล้ว