มีอะไรผิดปกติกับการเป็นคนรากเสมอ?


83

ฉันมีความรู้สึกว่านี่เป็นคำถามที่งี่เง่า แต่นี่เป็นสิ่งที่ฉันสงสัยมานานแล้ว

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


28
ฉันจะแสดงความคิดเห็นด้วยว่าหากคุณไม่คุ้นเคยกับ "Unix Way" นี่ไม่ใช่คำถามที่โง่ คุณควรได้รับโบนัสสำหรับการคิดถามคำถามตั้งแต่แรกในฐานะผู้ดูแลระบบ Linux คนใหม่
Bart Silverstrim

และฉันต้องการแสดงความคิดเห็นกับคำตอบบางอย่าง โดยเฉพาะอย่างยิ่งคนที่พูดว่า "คุณสามารถทำให้สิ่งที่เป็นราก" ฉันไม่คิดว่าเป็นจุด ... "rm -rf /" ทำเหมือนกับ "sudo rm -rf /" ประเด็นอยู่ที่ว่าสิ่งต่าง ๆ เช่น "sudo rm" ไม่ทำงาน แต่ "sudo startMyApp บนพอร์ตต่ำ" ยังทำงานได้
Zlatko

เกิดอะไรขึ้นกับไม่เคยเป็น
ostendali

คำตอบ:


70

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

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

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

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


25
+1 - การใช้ "sudo" ทำให้การเรียกใช้โปรแกรมเป็นรูทการกระทำที่ชัดเจน ไม่ใช่เรื่องของ "การหยุดแฮ็กเกอร์" แต่เป็นเรื่องของการทำให้คุณติดนิสัยการทำงานในฐานะผู้ใช้ที่ไม่ได้รับสิทธิพิเศษ
Evan Anderson

2
ฉันเริ่มสงสัยว่า Evan เป็น AI จริงหรือไม่
Bart Silverstrim

11
Sudo ยังเพิ่มเส้นทางการตรวจสอบ เป็นใครอะไรและเมื่อใดที่ถูกบันทึกไว้เมื่อทำงานเป็น sudo ไฟล์บันทึกใดที่สามารถแตกต่างกันไปตาม distro แต่ distros RedHat มักจะใช้ / var / log / secure และ Ubuntu ใช้ /var/log/auth.log... ฉันไม่แน่ใจว่านี่เป็นจริงสำหรับ distros ที่ใช้ Debian ทั้งหมดหรือไม่
3dinfluence

3
+1 - ไม่เพียง แต่เกี่ยวกับสิทธิ์ในการสร้างสิ่งต่างๆหรือทำสิ่งต่างๆ แต่ยังเกี่ยวกับสิทธิ์ในการทำลาย เข้าสู่ระบบในฐานะ root (หรือเทียบเท่ากับระบบปฏิบัติการอื่น ๆ สำหรับเรื่องนั้น) ก็เหมือนกับการเดินไปรอบ ๆ ถือปืนที่มีความปลอดภัยออก คุณอาจไม่ได้ตั้งใจเรียกไก แต่คุณจะไว้ใจตัวเองให้ทำแบบเดียวกันหรือไม่?
Maximus Minimus

3
mh: / ฉันสวมหมวกคาวบอยของเขาสะบัดความปลอดภัยบนปืนพกของเขาเปิดเบียร์พึมพำกับเสียงบ่นคร่ำครวญบางอย่างเกี่ยวกับแพนซี่แล้วก็ล็อกอินด้วยราก
Kyle Brandt

29

หากคุณไม่อนุญาตให้คนโง่เข้าสู่ระบบเซิร์ฟเวอร์ของคุณในฐานะรูทดังนั้นอย่าทำงานเหมือนรูทตัวเอง จนกว่าคุณจะสามารถส่งมอบในหัวใจว่าคุณไม่เคยรับคนงี่เง่า ไม่มีจริงๆ? คุณแน่ใจเหรอ :)

ผลประโยชน์: ลดโอกาสที่คุณจะรูตและเป็นคนงี่เง่า


6
+1 - "ผลประโยชน์: ลดโอกาสที่คุณจะเป็นคนรูทและคนงี่เง่าพร้อมกัน" ฉันรักสิ่งนี้อย่างแน่นอน
Evan Anderson

+1 สำหรับปรัชญาของ Scott Adams ที่ทุกคนเป็นคนงี่เง่า :) ใช่นั่นหมายความว่าคุณและฉันก็เช่นกัน
เออร์นี่

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

9

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


9

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


5
สิ่งนี้เรียกว่า "root rot"
kmarsh

1
ฉันชอบคำนั้น "รูตเน่า" แท้จริงแล้วการทำงานในฐานะรูทตลอดเวลาสามารถเปลี่ยนเครื่อง * ให้เป็นเครื่องที่เหมือนวินโดวส์ 95 ที่ไม่มีความปลอดภัยแบบผู้ใช้หลายคน (ผมจำได้ว่าเครื่อง SCO, ปีที่ผ่านมาที่ผู้ใช้บนแอปบัญชีที่ใช้ร่วมกันทุกคนทำงานเป็นหลักเพราะ "มันทำให้ปัญหาเกี่ยวกับสิทธิ์หายไป"> ถอนหายใจ <..)
อีวานเดอร์สัน

ฉันจำได้ว่าได้รับคำอธิบายเช่นนั้น - พวกเขามีเครื่องมือส่งเมล์ลิสต์ทำงานเป็นรูทพร้อมกับ sendmail คำตอบของฉันคือ "ปัญหาการอนุญาตก็หายไปสำหรับแฮกเกอร์ด้วย"
duffbeer703

7

มีกุญแจสำคัญสองสามอย่างที่ไม่ได้เข้าสู่ระบบในฐานะ root: 1) รหัสผ่านรูทจะไม่ถูกส่งผ่านเครือข่ายในเวลาที่เข้าสู่ระบบ 2) ไม่มีทางที่จะบอกได้ว่าใครทำอะไรถ้าผู้ใช้หลายคนเข้าสู่ระบบด้วยบัญชีเดียวกัน 3) ตั้งใจทำบางสิ่งที่ 'โง่'


3

การป้องกันตัวเองนั้นมีมากขึ้นเพื่อให้คุณมีโอกาสครั้งที่สองที่จะตรวจสอบคำสั่งสิทธิพิเศษที่คุณพยายามเรียกใช้ซึ่งคล้ายกับ UAC ใน Windows มันค่อนข้างง่ายที่จะทำบางสิ่งบางอย่างโดยไม่ได้ตั้งใจ rm -rf /ในขณะที่เข้าสู่ระบบในฐานะ root

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


การตรวจสอบย้อนกลับมีความสำคัญในระบบที่มีบุคคลมากกว่าหนึ่งคนทำงานเป็นผู้ดูแลระบบ มันไม่ได้เป็นเพียงที่พึงประสงค์มันได้รับคำสั่งจากระบบการปกครอง
APC

ฉันทำสิ่งนี้ในวันศุกร์ แทนที่จะลบ "/ dump / folder /" ฉันลบโฟลเดอร์ / แบ็กสแลชที่เหม็นครั้งหนึ่งทำให้ฉันนึกถึงสาเหตุที่เราไม่เข้าสู่ระบบในฐานะรูท
oneodd1

2

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


ฉันสังเกตเห็นว่าทุกวันนี้รหัสที่ชั่วร้ายมักจะหมายถึงบ็อตสแปมซึ่งสามารถเรียกใช้ในฐานะผู้ใช้รายใดก็ได้
เออร์นี่

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

2

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

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

คิดถึงโค้ดที่คุณใช้โดยไม่ต้องคิด ตัวอย่างเช่นพอร์ต Linux ของ Adobe Flash ซึ่งเป็นกองนึ่งของเซ่อที่ใช้งานได้ในอดีตเท่านั้น คุณคิดว่ารหัสนั้นปลอดภัยแค่ไหน? คุณต้องการให้สามารถควบคุมระบบของคุณได้อย่างเต็มที่หรือไม่?


2

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



1

คำแนะนำของฉันคือลองใช้รูทตลอดเวลาพักหนึ่ง คุณจะค้นพบว่าทำไมคุณไม่ควรทำ :)


1

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

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

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

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


0

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


0

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

คุณยังได้ทำสิ่งดีๆเช่น ping -i 0.2 -c 1000 example.com

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.