ฉันเคยได้ยินบ่อยๆว่าดีกว่าที่จะรูทมากกว่าเข้าสู่ระบบโดยตรงในฐานะผู้ใช้รูท (และแน่นอนว่าผู้คนก็บอกว่ามันดีกว่าที่จะใช้ sudo) ฉันไม่เคยเข้าใจเลยว่าทำไมคน ๆ หนึ่งถึงดีกว่าคนอื่น
ฉันเคยได้ยินบ่อยๆว่าดีกว่าที่จะรูทมากกว่าเข้าสู่ระบบโดยตรงในฐานะผู้ใช้รูท (และแน่นอนว่าผู้คนก็บอกว่ามันดีกว่าที่จะใช้ sudo) ฉันไม่เคยเข้าใจเลยว่าทำไมคน ๆ หนึ่งถึงดีกว่าคนอื่น
คำตอบ:
การอนุมานนั้นเป็นไปเฉพาะsu
หรือsudo
เมื่อจำเป็น
งานประจำวันส่วนใหญ่ไม่ต้องการรูทเชลล์ ดังนั้นจึงเป็นการดีที่จะใช้เชลล์ที่ไม่ได้รับสิทธิพิเศษเป็นพฤติกรรมเริ่มต้นของคุณและจากนั้นยกระดับเป็นรูทเมื่อคุณต้องการทำงานพิเศษ
ด้วยการทำเช่นนี้คุณกำลังลดขอบเขตของข้อผิดพลาดที่เป็นอันตราย (สคริปต์ที่ไม่ถูกต้องใช้สัญลักษณ์แทน ฯลฯ ) และช่องโหว่จากแอปพลิเคชันที่คุณใช้ โดยเฉพาะอย่างยิ่งผู้ที่เชื่อมต่อกับอินเทอร์เน็ต - ดูสุภาษิตโบราณที่ว่า"อย่า IRC เป็นราก"
sudo
มักจะแนะนำเพราะจะช่วยให้คุณปรับละเอียดและตรวจสอบการใช้สิทธิ์ดังกล่าว
โดยการสังเกตการปฏิบัติเหล่านี้คุณยังอยู่ในตำแหน่งที่จะปิดการเข้าสู่ระบบรากระยะไกล สิ่งนี้จะเพิ่มช่องทางเข้าสำหรับผู้โจมตีที่ต้องการโจมตีทั้งบัญชีผู้ใช้ปกติที่เป็นสมาชิกของกลุ่ม "วงล้อ" และได้รับอนุญาตจากคีย์สาธารณะ SSH เท่านั้นจากนั้นบัญชีรูทเอง
sudo
ดีกว่าsu
ยังช่วยให้คุณใช้การ-m
ตั้งค่าสถานะเพื่อให้ตัวแปรสภาพแวดล้อมเหมือนกันในขณะที่อยู่ในเทอร์มินัลรูท ไม่มีอะไรทำให้ฉันเป็นบ้าอีกต่อไปแล้วเพื่อsu
จะหยั่งรากเพียงเล็กน้อยเท่านั้นที่จะทำอะไรบางอย่าง~
ในชื่อไดเรกทอรีและใช้ไม่ได้
คุณควรปิดใช้งานการเข้าถึงรูทจากระยะไกลเพื่อให้ผู้โจมตีไม่สามารถประนีประนอมรูตได้หากไม่ได้รับความยินยอมจากผู้ใช้ก่อนจากนั้นจึงเลื่อนไปที่รูท เราเปิดใช้งานการเข้าถึงรูทที่คอนโซลเท่านั้น
รวมทั้งสร้างความรับผิดชอบ :)
เหตุผลหลักคือการสร้างหลักฐานการตรวจสอบ หากคุณต้องการเข้าสู่ระบบในฐานะผู้ใช้ทั่วไปแล้ว su มันเป็นไปได้ที่จะติดตามผู้รับผิดชอบการกระทำที่กำหนด
sudo โดยอัตโนมัติยังบันทึกทุกคำสั่งเพื่อ syslog และคุณสามารถกำหนดคำสั่งที่ผู้ใช้แต่ละคนสามารถใช้
sudo vim foo.txt
แล้ววางลงในเปลือกจากภายในเป็นกลุ่มจะให้เปลือกหอยคุณโดยไม่ต้องบันทึก sudo ปกติ
sudo -i
จะได้รับการโต้ตอบเซสชั่น ...
อีกเหตุผลที่ดี: เมื่อยกระดับเป็นรูทผ่าน sudo ผู้ใช้จะตรวจสอบสิทธิ์ด้วยตนเองซึ่งหมายความว่าพวกเขาไม่จำเป็นต้องได้รับรหัสผ่านรูททำให้ง่ายต่อการล็อคสิ่งต่าง ๆ เมื่อมีคนออกจากองค์กรของคุณ
หากคุณต้องการสร้างหลักฐานการตรวจสอบและไม่ต้องการตกเป็นเหยื่อของปัญหา "sudo su -" หรือ "sudo vim foo.txt" ที่กล่าวถึงที่นี่คุณสามารถใช้ "sudosh" แจกการเข้าถึงรูทผ่าน sudo แต่ทำเพียงคำสั่งที่อนุญาตให้เรียกใช้ "sudosh" เท่านั้น
sudosh เป็นเชลล์การบันทึกและคุณสามารถเล่นซ้ำเซสชันเทอร์มินัลทั้งหมดในภายหลังโดยแสดงสิ่งที่ผู้ใช้เห็นบนเทอร์มินัลของพวกเขา
คุณควรฝึกความปลอดภัยในเชิงลึก
ไม่อนุญาตการเข้าถึงรูทระยะไกล (หรือเข้าถึงอย่างน้อยที่สุดด้วยรหัสผ่าน) (หากคุณอนุญาตการเข้าถึงรูทผ่านคีย์ให้ควบคุมคีย์เหล่านั้นอย่างระมัดระวังหรือดีกว่ายังใช้บางอย่างเช่น Kerberos ที่อนุญาตให้มีการเพิกถอนคีย์จากส่วนกลาง)
ฉันปิดการใช้งาน su และใช้ sudo ด้วยวิธีนี้ผู้ใช้ใช้คีย์ (เข้ารหัสดีกว่า) เพื่อเข้าถึงระบบจากนั้นพวกเขาใช้รหัสผ่านของพวกเขาสำหรับการเพิ่มระดับสิทธิ์เท่านั้น คุณสามารถ จำกัด โปรแกรมที่ผู้ใช้เข้าถึงด้วย sudo แต่ส่วนใหญ่คุณเพียง จำกัด การเข้าถึงผู้รู้รหัสผ่านรูท
ในโลกอุดมคติคุณควรเผยแพร่รหัสผ่านรูทของคุณบนอินเทอร์เน็ตและไม่เป็นไรแม้ว่าคุณจะให้คนอื่นเข้าถึงเครื่องของคุณ (แต่ไม่ได้ใส่ไว้ในไฟล์ / etc / sudoers) แน่นอนคุณไม่ควรเผยแพร่รหัสผ่านรูท แต่แนวคิดก็คือคุณปกป้องระบบของคุณด้วยการป้องกันแบบเลเยอร์ที่ซ้อนกัน
แนวคิดคือการปิดใช้งานการเข้าสู่ระบบรูทดังนั้นจึงไม่มีบัญชีผู้ดูแลระบบเริ่มต้น วิธีนี้ผู้โจมตีจะต้องเดาทั้งชื่อผู้ใช้และรหัสผ่าน (ไม่ใช่เฉพาะรหัสผ่าน)
หากคุณใช้รูทเป็นประจำการอนุญาตของคุณอาจไม่ถูกต้องหรือคุณอาจต้องให้สิทธิ์ sudo หรือสิทธิ์กลุ่มใหม่เพื่อ r / w / x ไฟล์หรือไดเรกทอรี
รูปแบบการอนุญาตที่ดีเป็นสิ่งที่แม้แต่ผู้ใช้ลีนุกซ์มานานก็ผิดหรือไม่ตระหนักถึงขอบเขตที่พวกเขามี
อย่าให้ฉันเริ่มต้นด้วยสิ่งที่ Ubuntu ทำ!
มันช่วยให้คุณไม่ต้องเรียกใช้ rm -r -f / ฉันเพิ่งจะเรียกใช้เมื่อ 2 วันที่ผ่านมา (ในฐานะผู้ใช้ที่ไม่มีสิทธิ์ฉันหมายถึงการเรียกใช้ rm -r -f *)