TL; DR:ทำสิ่งต่าง ๆ ให้เป็นรูทเฉพาะเมื่อคุณต้องการ sudo
ทำให้เป็นเรื่องง่าย หากคุณเปิดใช้งานการเข้าสู่ระบบรูทคุณยังคงสามารถปฏิบัติตามกฎนี้ได้คุณเพียงแค่ต้องระมัดระวัง sudo
แม้ว่าการเปิดใช้งานเข้าสู่ระบบรากไม่ปลอดภัยจริงถ้าทำถูกต้องคุณไม่จำเป็นต้องเปิดการใช้งานเข้าสู่ระบบรากเพราะคุณมี
มีคำถามที่เกี่ยวข้องสองคำถามจริงๆที่นี่
- เหตุใดการลงชื่อเข้าใช้เป็นหลักสำหรับการใช้คอมพิวเตอร์ในชีวิตประจำวันของผู้ใช้ (การท่องเว็บอีเมลการประมวลผลคำการเล่นเกม ฯลฯ )
- เหตุใด Ubuntu จึงปิดการใช้งานการเข้าสู่ระบบรูททั้งหมดและการใช้งาน
sudo
และpolkitเพื่อให้ผู้ดูแลระบบสามารถเรียกใช้คำสั่งเฉพาะในฐานะรูทได้
ทำไมไม่เรียกใช้ทุกอย่างเป็นรูทตลอดเวลา
คำตอบอื่น ๆ ส่วนใหญ่ครอบคลุมเรื่องนี้ มันลงมาที่:
- หากคุณใช้รูทพาวเวอร์สำหรับงานที่ไม่ต้องการใช้งานและคุณต้องทำสิ่งที่คุณไม่ได้ตั้งใจคุณสามารถเปลี่ยนหรือทำอันตรายต่อระบบของคุณในแบบที่คุณไม่ต้องการ
- หากคุณเรียกใช้โปรแกรมในฐานะรูทเมื่อคุณไม่ต้องการและท้ายที่สุดก็ทำสิ่งที่คุณไม่ได้ตั้งใจทำ - ตัวอย่างเช่นเนื่องจากช่องโหว่ด้านความปลอดภัยหรือข้อผิดพลาดอื่น ๆ - อาจเปลี่ยนหรือเป็นอันตราย ระบบของคุณในแบบที่คุณไม่ต้องการ
มันเป็นความจริงที่ว่าแม้จะไม่ทำสิ่งใดในฐานะที่เป็นรากคุณก็สามารถก่อให้เกิดอันตรายได้ ตัวอย่างเช่นคุณสามารถลบไฟล์ทั้งหมดในโฮมไดเร็กตอรี่ของคุณเองซึ่งโดยปกติจะรวมถึงเอกสารทั้งหมดของคุณโดยไม่ต้องทำงานเป็นรูท! (หวังว่าคุณจะมีข้อมูลสำรอง)
แน่นอนว่าในฐานะ root มีวิธีเพิ่มเติมในการทำลายข้อมูลเดียวกันโดยไม่ตั้งใจ ตัวอย่างเช่นคุณสามารถระบุof=
อาร์กิวเมนต์ที่ไม่ถูกต้องให้กับdd
คำสั่งและเขียนข้อมูลดิบบนไฟล์ของคุณ (ซึ่งทำให้วิธีการกู้คืนยากกว่าที่คุณจะลบทิ้ง)
หากคุณเป็นคนเดียวที่ใช้คอมพิวเตอร์ของคุณอันตรายที่คุณทำได้เพียงเพราะรูทอาจไม่สูงกว่าอันตรายที่คุณสามารถทำได้ด้วยสิทธิ์ผู้ใช้ปกติของคุณ แต่นั่นก็ยังไม่มีเหตุผลใดที่จะขยายความเสี่ยงของคุณเพื่อรวมวิธีเพิ่มเติมในการทำลายระบบ Ubuntu ของคุณ
หากการใช้งานด้วยบัญชีผู้ใช้ที่ไม่ใช่รูททำให้คุณไม่สามารถควบคุมคอมพิวเตอร์ของคุณเองได้แน่นอนว่าสิ่งนี้จะเป็นการแลกเปลี่ยนที่ไม่ดี แต่มัน doesn't-- ตลอดเวลาที่คุณจริงต้องการเพื่อดำเนินการเป็นรากที่คุณสามารถทำได้ด้วยsudo
และวิธีการอื่น ๆ
ทำไมไม่ทำให้มันเป็นไปได้ในการเข้าสู่ระบบในฐานะ root?
ความคิดที่ว่าความสามารถในการเข้าสู่ระบบในฐานะที่เป็นรากไม่ปลอดภัยโดยเนื้อแท้เป็นตำนาน บางระบบมีบัญชีรูทที่เปิดใช้งานโดยค่าเริ่มต้น ระบบอื่น ๆ ใช้sudo
โดยค่าเริ่มต้นและบางระบบมีการกำหนดค่าทั้งสอง
- ตัวอย่างเช่นOpenBSDซึ่งได้รับการพิจารณาอย่างกว้างขวางและสมเหตุสมผลว่าเป็นระบบปฏิบัติการอเนกประสงค์ที่ปลอดภัยที่สุดในโลกมาพร้อมกับบัญชีรูทที่เปิดใช้งานสำหรับการเข้าสู่ระบบด้วยรหัสผ่านในท้องถิ่น
- ระบบปฏิบัติการที่ดีเคารพอื่น ๆ ที่ทำเช่นนี้ ได้แก่RHEL , CentOSและFedora
- Debian (จากUbuntu มา ) มีผู้ใช้ตัดสินใจว่าจะกำหนดค่าวิธีการใดในระหว่างการติดตั้งระบบ
มันไม่ผิดที่จะมีอคติระบบบัญชีที่รากถูกเปิดใช้งานโดยมีเงื่อนไขว่า
- คุณยังคงใช้งานได้เฉพาะเมื่อคุณต้องการและ
- คุณ จำกัด การเข้าถึงอย่างเหมาะสม
สามเณรมักถามวิธีการเปิดใช้งานบัญชีรูทใน Ubuntu เราไม่ควรปิดบังข้อมูลนี้จากพวกเขา แต่โดยปกติเมื่อมีคนถามว่าเป็นเพราะพวกเขาอยู่ภายใต้การแสดงผลที่ผิดพลาดว่าพวกเขาต้องเปิดใช้งานบัญชีรูท ในความเป็นจริงมันแทบไม่จำเป็นเลยดังนั้นเมื่อตอบคำถามดังกล่าวเป็นสิ่งสำคัญที่เราจะอธิบาย การเปิดใช้งานบัญชีรูททำให้การพึงพอใจและดำเนินการต่าง ๆ เป็นไปอย่างง่ายดายเนื่องจากรูทที่ไม่ต้องการสิทธิ์พิเศษ แต่นี่ไม่ได้หมายความว่าการเปิดใช้งานบัญชีรูทนั้นไม่ปลอดภัย
sudo
สนับสนุนและช่วยให้ผู้ใช้เรียกใช้คำสั่งเป็นรูตเมื่อจำเป็นเท่านั้น ในการรันคำสั่งในฐานะรูทให้พิมพ์sudo
เว้นวรรคแล้วตามด้วยคำสั่ง วิธีนี้สะดวกมากและผู้ใช้ทุกระดับทักษะชอบวิธีการนี้
sudo
ในระยะสั้นที่คุณไม่จำเป็นต้องเปิดการใช้งานเข้าสู่ระบบรากเพราะคุณมี แต่ตราบใดที่คุณใช้สำหรับงานการดูแลระบบที่จำเป็นต้องใช้เท่านั้นมันมีความปลอดภัยพอ ๆ กันในการเปิดใช้งานและเข้าสู่ระบบในฐานะ root ตราบใดที่ใช้วิธีดังต่อไปนี้ :
- ในประเทศจากกราฟิกที่ไม่ใช่คอนโซลเสมือน
- ด้วย
su
คำสั่งเมื่อเข้าสู่ระบบจากบัญชีอื่น
อย่างไรก็ตามมีความเสี่ยงด้านความปลอดภัยที่เพิ่มขึ้นอย่างมากหากคุณเข้าสู่ระบบด้วยรูทด้วยวิธีต่อไปนี้:
ชัดเจน เมื่อคุณเข้าสู่ระบบแบบกราฟิกสิ่งต่าง ๆ มากมายทำงานเพื่อให้อินเทอร์เฟซแบบกราฟิกและคุณจะจบลงด้วยการใช้งานแอปพลิเคชันมากขึ้นเพื่อให้รูทใช้อินเทอร์เฟซนั้นเพื่ออะไรก็ตาม สิ่งนี้ขัดกับหลักการของการรันโปรแกรมเฉพาะในฐานะรูทที่ต้องการสิทธิ์รูท บางโปรแกรมเหล่านี้อาจมีข้อบกพร่องรวมถึงข้อบกพร่องด้านความปลอดภัย
นอกจากนี้ยังมีเหตุผลด้านความปลอดภัยที่จะหลีกเลี่ยงปัญหานี้ การเข้าสู่ระบบแบบกราฟิกในขณะที่รูทไม่ได้รับการรองรับ - เนื่องจาก loevborg กล่าวถึงนักพัฒนาของสภาพแวดล้อมเดสก์ท็อปและแอพแบบกราฟิกมักจะไม่ทดสอบว่าเป็นรูท แม้ว่าพวกเขาจะทำเช่นนั้นการล็อกอินเข้าสู่สภาพแวดล้อมเดสก์ท็อปกราฟิกในขณะที่รูทไม่ได้รับการทดสอบอัลฟาและการทดสอบเบต้าจริงโดยผู้ใช้เนื่องจากแทบจะไม่มีใครพยายามเลย (ด้วยเหตุผลด้านความปลอดภัยที่อธิบายไว้ด้านบน)
หากคุณจำเป็นต้องเรียกใช้โปรแกรมกราฟิกที่เฉพาะเจาะจงเป็นรากคุณสามารถใช้gksudo
sudo -H
หรือ สิ่งนี้รันโปรแกรมน้อยกว่ามากในฐานะรูทมากกว่าถ้าคุณเข้าสู่ระบบกราฟิกด้วยบัญชีรูท
จากระยะไกล root
บัญชีสามารถมีผลในการทำอะไรและจะมีชื่อเดียวกันในทางปฏิบัติทุกระบบปฏิบัติการยูนิกซ์เหมือน โดยเข้าเป็นรากผ่านssh
หรือกลไกระยะไกลอื่น ๆ หรือแม้กระทั่งการกำหนดค่าบริการจากระยะไกลเพื่ออนุญาตให้คุณทำให้มันง่ายมากสำหรับผู้บุกรุกรวมทั้งสคริปต์อัตโนมัติและมัลแวร์ที่ทำงานบน botnets การเข้าถึงผ่านกำลังดุร้ายโจมตีพจนานุกรม (และอาจเป็นไปได้ข้อบกพร่องด้านความปลอดภัย)
เนื้อหาที่มีความเสี่ยงไม่สูงมากถ้าคุณอนุญาตให้เฉพาะที่สำคัญที่ใช้และไม่ใช้รหัสผ่านเข้าสู่ระบบราก
โดยเริ่มต้นในอูบุนตูไม่กราฟิกรากเข้าสู่ระบบหรือเข้าสู่ระบบระยะไกลผ่านทาง SSH จะเปิดใช้งานแม้ว่าคุณจะช่วยให้การเข้าสู่ระบบเป็นราก นั่นคือแม้ว่าคุณจะเปิดใช้งานการเข้าสู่ระบบรากก็ยังคงเปิดใช้งานในรูปแบบที่มีความปลอดภัยพอสมควร
- ถ้าคุณเรียกใช้เซิร์ฟเวอร์ SSH บน Ubuntu และยังไม่ได้มีการเปลี่ยนแปลงก็จะมีเส้น
/etc/sshd/ssh_config
PermitRootLogin without-password
สิ่งนี้ปิดใช้งานการเข้าสู่ระบบด้วยรหัสผ่าน แต่อนุญาตการเข้าสู่ระบบด้วยคีย์ อย่างไรก็ตามจะไม่มีการกำหนดค่าคีย์ตามค่าเริ่มต้นดังนั้นหากคุณไม่ได้ตั้งค่าไว้จะไม่สามารถใช้งานได้ นอกจากนี้การลงชื่อเข้าใช้จากระยะไกลด้วยรูทคีย์นั้นแย่กว่าการล็อกอินจากระยะไกลผ่านรหัสผ่านส่วนหนึ่งเป็นเพราะไม่ได้สร้างความเสี่ยงต่อการโจมตีแบบดุร้ายและการโจมตีพจนานุกรม
- แม้ว่าค่าเริ่มต้นควรปกป้องคุณฉันคิดว่ามันเป็นความคิดที่ดีที่จะตรวจสอบการกำหนดค่า ssh ของคุณหากคุณกำลังจะเปิดใช้งานบัญชีรูท และหากคุณใช้บริการอื่น ๆ ที่ให้การเข้าสู่ระบบจากระยะไกลเช่น ftp คุณควรตรวจสอบพวกเขาด้วย
สรุปแล้ว:
- ทำสิ่งต่าง ๆ ให้เป็นรูทเมื่อคุณต้องการ
sudo
ช่วยให้คุณทำเช่นนั้นในขณะที่ยังคงให้พลังเต็มที่กับทุกครั้งที่คุณต้องการ
- หากคุณเข้าใจวิธีการทำงานของรูทและอันตรายของการใช้งานมากเกินไปการเปิดใช้งานบัญชีรูทไม่ได้เป็นปัญหาจากมุมมองด้านความปลอดภัย
- แต่ถ้าคุณเข้าใจสิ่งนั้นคุณก็รู้ว่าคุณไม่จำเป็นต้องเปิดใช้งานบัญชีรูท
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูทและsudo
รวมถึงประโยชน์เพิ่มเติมsudo
ที่ฉันไม่ได้กล่าวถึงในที่นี้ฉันขอแนะนำRootSudoในอูบุนตูช่วยเหลือ wiki