เหตุใด Ubuntu จึงไม่อนุญาตให้ผู้ใช้ GUI ลงชื่อเข้าใช้ในฐานะผู้ใช้ในขณะที่ระบบเริ่มต้นระบบเหมือนผู้ดูแลระบบใน Windows
ทำไมพวกเขาถึง จำกัด เราให้เข้าสู่ระบบผ่านทางเทอร์มินัลเท่านั้น?
เหตุใด Ubuntu จึงไม่อนุญาตให้ผู้ใช้ GUI ลงชื่อเข้าใช้ในฐานะผู้ใช้ในขณะที่ระบบเริ่มต้นระบบเหมือนผู้ดูแลระบบใน Windows
ทำไมพวกเขาถึง จำกัด เราให้เข้าสู่ระบบผ่านทางเทอร์มินัลเท่านั้น?
คำตอบ:
เพราะไม่แนะนำให้ทำเช่นนั้นเว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่ รูตเป็นผู้ใช้ขั้นสูงซึ่งหมายความว่ามันสามารถทำอะไรได้ทุกอย่างมันมีไว้สำหรับงานด้านการบริหารเท่านั้น งานประจำวันสามารถแบกรับความเสี่ยงด้านความปลอดภัยที่จะถูกเอาเปรียบหากทุกคน (หรือผู้ใช้จำนวนมาก) ใช้รูท Think Windows - 99% ของปัญหามัลแวร์และไวรัสมาจากคนที่ใช้บัญชีผู้ดูแลระบบสำหรับงานประจำวัน
ลองดูตัวอย่าง
เกิดอะไรขึ้นถ้ามีคนบุกเข้าไปในระบบของคุณและบอกให้ลบดิสก์ของคุณ หากคุณใช้งานในฐานะผู้ใช้ทั่วไปไฟล์เดียวที่คุณจะ (ควร) สามารถลบได้คือไฟล์ที่เป็นของคุณและไม่ใช่ใครอื่น ถ้าคุณมีคนอื่นที่ใช้คอมพิวเตอร์ไฟล์ของพวกเขาจะไม่ถูกแตะต้องเลยไม่ว่าคุณจะพยายามแค่ไหน นั่นหมายความว่าคุณจะไม่สามารถเปลี่ยนไฟล์ระบบใด ๆ ได้ดังนั้นระบบของคุณจะยังคงแข็งแกร่งและไม่ได้รับผลกระทบ / ไม่ติดไวรัส
อย่างไรก็ตามหากคุณทำงานเป็นรูทคุณสามารถล้างฮาร์ดไดรฟ์ทั้งหมดอาจสร้างความเสียหายให้กับฮาร์ดแวร์ของตัวเองและทำให้ระบบไม่สามารถใช้งานได้ การแก้ไข: ทุกคนที่สามารถเรียกใช้คำสั่งเดียวในฐานะรูทบนคอมพิวเตอร์ของคุณ (บางเว็บไซต์ที่เป็นอันตรายหรือสิ่งที่แนบมากับอีเมล) สามารถทำเช่นนั้นได้
ลองดูที่http://everyjoe.com/technology/explain-why-not-log-on-as-root/เป็นบทความที่ดีที่อาจอธิบายได้ดีกว่าฉัน
แก้ไข:นี่คืออีกหนึ่งhttp://ihazomgsecurityskillz.blogspot.nl/2010/09/running-as-root.html
EDIT2:คุณสามารถใช้sudo command
หรือgksu command
เรียกใช้command
เป็น superuser ทั้งคู่ทำงานกับยูทิลิตี้กราฟิกและบรรทัดคำสั่ง sudo
มักจะใช้สำหรับ CLI แม้ว่าและgksu
เป็นรหัสผ่านกราฟิก promt ที่ทำสิ่งเดียวกัน
ในขอบเขตที่พวกเขาช่วยให้คุณกลายเป็นroot
ชั่วคราว - มากมากดีกว่าทำงานเป็นรากอย่างต่อเนื่องและเสี่ยงต่อความไม่แน่นอน
ใน Ubuntu มาตรฐานroot
ไม่อนุญาตให้ลงชื่อเข้าใช้ไม่ได้มาจากตัวจัดการการลงชื่อเข้าใช้ GDM (กราฟิก) หรือจากคอนโซลข้อความ (เช่นที่คุณได้รับถ้ากดCtrl+ Alt+ F1)
ในการดำเนินการroot
(เช่นผู้ดูแลระบบ) คุณจะต้องใช้sudo
คำสั่งในเทอร์มินัลหรือ GUI ใด ๆ ที่เทียบเท่า: สิ่งเหล่านี้จะถามรหัสผ่านของคุณจากนั้นทำการดำเนินการที่มีสิทธิ์พิเศษที่ร้องขอ
เหตุผลสำหรับพฤติกรรมนี้คือตามที่คนอื่น ๆ ชี้ให้เห็นว่าการroot
ดำเนินการนั้นมีความเสี่ยงโดยเนื้อแท้และจำนวนของการดำเนินการที่ต้องใช้root
สิทธิ์มีขนาดค่อนข้างเล็ก: โดยใช้sudo
วิธีการนี้คุณใช้เวลาส่วนใหญ่กับบัญชีที่ไม่มีสิทธิ์ ระบบและผู้ใช้อื่น ๆ ) และเพิ่งได้รับroot
พลังเมื่อจำเป็นจริงๆ
ตัวอย่างอาจช่วยชี้แจง สมมติว่าคุณต้องการติดตั้งบริการใหม่ (daemon) บนเครื่องของคุณ สิ่งนี้ค่อนข้างใหม่และคุณจำเป็นต้องอ่านเกี่ยวกับมันและวิธีกำหนดค่าตามความต้องการของคุณ คุณจะค้นดูเว็บมากมายเพื่อค้นหาข้อมูลตัวอย่างการกำหนดค่า ฯลฯ อาจมีการแชท IRC เพื่อขอข้อมูลเพิ่มเติม - สิ่งนี้ไม่จำเป็นต้องใช้root
พลัง! ในท้ายที่สุดคุณต้องใช้สิทธิ์พิเศษสำหรับการดำเนินการสองอย่างเท่านั้น:
sudo apt-get install ...
) และหลักการที่ยอมรับกันทั่วไปในการรักษาความปลอดภัยคอมพิวเตอร์มักจะใช้ระดับสิทธิ์ที่เป็นไปได้น้อยที่สุดเพื่อดำเนินการ - สิ่งนี้ช่วยลดความเสี่ยงที่สิ่งเลวร้ายเกิดขึ้นเนื่องจากข้อบกพร่องในซอฟต์แวร์หรือข้อผิดพลาดจากผู้ให้บริการ
การตั้งค่าเริ่มต้นของ Ubuntu ไปในทิศทางนี้ หากคุณใช้การroot
เข้าสู่ระบบแทนคุณจะต้องจบการท่องอินเทอร์เน็ตทำ IRC (และอาจเป็นไปได้ว่าสิ่งอื่นใดที่เกิดขึ้นพร้อมกัน) จากroot
บัญชีจึงไม่จำเป็นต้องเปิดเผยระบบถึงภัยคุกคาม
อัปเดต:สำหรับตัวอย่างคอมไพเลอร์ของคุณฉันจะดำเนินการต่อด้วยวิธีนี้:
ล็อกอินเข้าสู่โหนดผ่าน SSH ในฐานะผู้ใช้ปกติของคุณและจากโหนด Ubuntu หรือ GNU / Linux อื่นที่คุณมีการแสดงผลกราฟิก X11 อย่าลืมเปิดใช้งานการส่งต่อ X11 ผ่าน SSH:
ssh -X myuser@remotemachine.example.org
ที่พรอมต์ shell / SSH ออกคำสั่ง:
sudo /path/to/the/compiler/install/program
สิ่งนี้จะเรียกใช้ตัวติดตั้งคอมไพเลอร์พร้อมroot
สิทธิพิเศษและการเข้าถึง (ผ่านการส่งต่อ SSH) การแสดงผลแบบกราฟิกต่อหน้าคุณ
เหตุผลที่อยู่เบื้องหลังการใช้ sudo ในอูบุนตูที่สามารถพบได้ที่นี่ ถ้าคุณเคยต้องเป็นวิธีที่รวดเร็วในการ "รากไป" ผมใช้หรือsudo -s
sudo -i
นอกเหนือจากภูเขาของคำเตือนด้วยการใช้รูทคุณสามารถเปิดใช้งานรูทล็อกอินได้โดยการล็อกอินและดำเนินการต่อไปนี้จากเทอร์มินัล:
sudo passwd
สิ่งนี้จะแจ้งให้คุณใส่รหัสผ่านก่อนจากนั้นจะขอให้คุณเปลี่ยนรหัสผ่าน UNIX รหัสผ่านที่คุณป้อนจะใช้สำหรับroot
บัญชี
อูบุนตูวิกิพีเดียมีบทความดีดีในระดับความลึกของรากและ sudo ภายในอูบุนตู - คำเตือนและข้อผิดพลาด
มีสองคำถามที่นี่ หนึ่งคือทำไมการเข้าสู่ระบบรากปิดการใช้งานโดยค่าเริ่มต้นใน Ubuntu ที่ได้รับการแก้ไขโดยโพสต์หลายแห่งที่นี่
คำถามที่สองคือทำไมการล็อกอินแบบกราฟิกรูทจึงดูถูกโดยเฉพาะ?
ข้อเสียทั้งหมดของการล็อกอินรูตแบบ nongraphical จะใช้กับการล็อกอินรูทแบบกราฟิกด้วย แต่เมื่อคุณเข้าสู่ระบบแบบกราฟิกคุณเรียกใช้โปรแกรมมากขึ้นทำงานในลักษณะที่ซับซ้อนมากขึ้นกว่าเมื่อคุณเข้าสู่ระบบ nongraphically อินเทอร์เฟซผู้ใช้แบบกราฟิกทั้งหมดและโปรแกรมกราฟิกทั้งหมดที่จำเป็นในการใช้ GUI อย่างมีประสิทธิภาพจะทำงานเหมือนรูท ช่องโหว่ความปลอดภัยเล็ก ๆ ในนั้นจะช่วยให้ใครบางคนสามารถควบคุมระบบของคุณได้อย่างสมบูรณ์
การเข้าสู่ระบบด้วย root ไม่แนะนำใน Ubuntu แต่ไม่มีความเห็นพ้องกันในชุมชนความปลอดภัยว่าเป็นแนวปฏิบัติที่ไม่ดี อย่างไรก็ตามการเข้าสู่ระบบรูทแบบกราฟิกนั้นเป็นเพียงการปฏิบัติที่ไม่ดีและระบบปฏิบัติการเกือบทั้งหมดได้ยุติพวกเขาออกไปหรือแนะนำอย่างยิ่งต่อพวกเขา
ในระดับที่น้อยกว่าการมีผู้ใช้ที่ไม่ใช่รูท (โดยเฉพาะผู้ที่มีความสามารถในการดำเนินการในฐานะรูทที่มี sudo หรือ PolicyKit) ในการล็อกอินแบบกราฟิกจะแสดงความเสี่ยง แต่พวกเขาจะถูกควบคุมได้ดีกว่าทุกสิ่งในสภาพแวดล้อมแบบกราฟิกจริง ๆ แล้วจะต้องทำงานเหมือนรูทที่มีความสามารถไม่ จำกัด อย่างไรก็ตามสำหรับสถานการณ์ที่ความปลอดภัยเป็นสิ่งที่สำคัญที่สุดก็มักจะแนะนำให้ทำกับส่วนต่อประสานกราฟิกซึ่งเป็นสาเหตุที่ Ubuntu Server ไม่ได้จัดส่งด้วย GUI โดยค่าเริ่มต้นและแนะนำอย่างเป็นทางการกับการติดตั้งหนึ่ง (แม้ว่าจะสนับสนุน) .
ในโลกของ Windows ตอนนี้คุณสามารถติดตั้ง Windows Server ในลักษณะที่กำจัดอินเทอร์เฟซผู้ใช้แบบกราฟิก (โดยทางเทคนิคแล้วองค์ประกอบบางอย่างยังคงอยู่ แต่มันถูกถอดออกมากและคุณไม่สามารถเรียกใช้โปรแกรมกราฟิกโดยพลการได้) นี่คือเหตุผลเดียวกัน
แม้ว่าคุณตัดสินใจที่จะเปิดใช้งานการเข้าสู่ระบบรูทโปรดอย่าเข้าสู่ระบบในรูปแบบของกราฟิก การเปิดใช้งานการเข้าสู่ระบบรูทอาจทำให้คุณมีความเสี่ยงด้านความปลอดภัยที่สูงขึ้นเล็กน้อย การรันสภาพแวดล้อมแบบกราฟิกทั้งหมดในขณะที่รูททำให้คุณมีความเสี่ยงสูงขึ้นอย่างมาก
นอกจากนี้ด้วยข้อยกเว้นของเครื่องมือการดูแลระบบกราฟิกที่ออกแบบมาให้ทำงานเหมือนรูทด้วย gksu / gksudo / kdesudo โปรแกรมกราฟิกส่วนใหญ่ไม่ได้ตั้งใจให้รันในฐานะรูท เนื่องจากพวกเขาไม่ได้ทำการทดสอบอย่างกว้างขวางในโหมดนี้พวกเขาอาจล้มเหลวหรือทำงานผิดปกติ (ซึ่งอาจเลวโดยเฉพาะอย่างยิ่งเนื่องจากพวกเขาทำงานเหมือนรูท )
ในที่สุดแม้กระทั่งเครื่องมือการดูแลระบบกราฟิกบางอย่างเช่นusers-admin
จะล้มเหลวหากทำงานในฐานะรูทเนื่องจากพวกเขาคาดว่าจะถูกเรียกใช้โดยผู้ใช้ปกติและเพื่อดำเนินการตามที่รูท
เปิด Terminal ( Ctrl+ Alt+ Tหรือ Dash home> แอพเพิ่มเติม> ติดตั้ง (ขยาย)> เทอร์มินัล)
เพื่อเปิดใช้งานบัญชีรูท
sudo passwd root
ในประเภทอาคารหรือวาง ป้อนรหัสผ่านเข้าสู่ระบบปกติของคุณ (ถ้าคุณถูกถาม) จากนั้นคุณจะถูกขอให้ป้อนroot
รหัสผ่านใหม่และยืนยัน
เมื่อต้องการเพิ่มการเข้าสู่ระบบใหม่ที่อนุญาตให้คุณป้อนรูทและรหัสผ่าน
ในประเภทเทอร์มินัลหรือวาง gksudo gedit /etc/lightdm/lightdm.conf
. สิ่งนี้จะเปิดหน้าต่างตัวแก้ไขข้อความกราฟิกที่คุณสามารถแก้ไขไฟล์กำหนดค่าสำหรับหน้าจอเข้าสู่ระบบ
เพิ่มบรรทัดgreeter-show-manual-login=true
ไปที่ด้านล่างของไฟล์
ไฟล์ควรอ่านดังนี้:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
บันทึกlightdm.conf
ไฟล์และออกจาก gedit
รีบูท Ubuntu 12.04 และคุณจะเห็นหน้าต่าง“ เข้าสู่ระบบ” ใหม่ (แทนที่หน้าต่าง "อื่น ๆ " ก่อนหน้า) ซึ่งอนุญาตให้ใส่ชื่อผู้ใช้และรหัสผ่าน ป้อนroot
ชื่อผู้ใช้แล้วป้อนรหัสผ่านที่คุณกำหนดให้กับบัญชีรูท
ฉันหวังว่านี่จะช่วยผู้อื่นที่ต้องการ / ต้องการroot
เข้าถึง
สำหรับ Ubuntu 12.04 LTS คุณสามารถทำได้โดยใช้สิทธิ์รูท:
echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf
จากนั้นระบบจะขอให้คุณพิมพ์ทั้งชื่อผู้ใช้และรหัสผ่านเพื่อลงชื่อเข้าใช้แบบกราฟิก ฉันคิดว่าคุณได้ตั้งรหัสผ่านสำหรับรูทแล้ว :)
ฉันรู้ว่ามีเหตุผลมากมายที่คุณไม่ควรลงชื่อเข้าใช้โดยตรงในฐานะรูทอย่างไรก็ตามมีบางกรณีที่หายาก (ตัวอย่างเช่นในกล่องทดสอบที่รันใน vmware) เมื่อคุณชื่นชมความเชื่อมั่นในการรูทจริง ๆ
เนื่องจากผู้ใช้รูทและผู้ดูแลระบบ (ใน Windows) มีค่าเทียบเท่าเทพเจ้ากับคอมพิวเตอร์ ผู้ใช้นั้นสามารถปรับเปลี่ยนอะไรก็ได้จากการอนุญาตของไฟล์ไปจนถึงการลบระบบไฟล์ทั้งหมด เป็นเรื่องธรรมดาที่ผู้ใช้ตามบ้านทั่วไปจะเรียกใช้ในฐานะผู้ดูแลระบบ (ภายใต้ชื่อนั้นหรือชื่ออื่นที่ตั้งค่าไว้ตอนบู๊ตครั้งแรก) เนื่องจากโปรแกรมใด ๆ ที่ดำเนินการในฐานะผู้ใช้นั้นเป็นระบบกว้างมันจะกลายเป็นอันตราย
การไม่สามารถควบคุมสิทธิ์ของผู้ดูแลระบบอนุญาตให้ไวรัส / มัลแวร์หรือแม้แต่ปัญหาการทำลายตนเอง เป็นเพราะเหตุนี้ที่ distros หลายแห่งรวมถึง Ubuntu จำกัด การเปลี่ยนไปใช้พลังงานสูงโดยขั้นตอนพิเศษ (เป็นขั้นตอนที่ค่อนข้างจะช่วยยืนยันว่า "การเปลี่ยนแปลงใด ๆ ที่ฉันทำที่นี่คือการเปลี่ยนแปลงที่ยิ่งใหญ่ขึ้นในขอบเขต")
แม้ว่าคุณจะไม่สามารถเข้าสู่ระบบได้โดยตรงในฐานะรูท (เพราะเหตุผลอื่น ๆ ได้อธิบายไว้แล้ว) แต่คุณสามารถเรียกใช้แอปพลิเคชัน GUI เป็นรูทได้ ตัวอย่างเช่นระบบ→การดูแลระบบ→ Synaptic Package Managerเป็นแอปพลิเคชันกราฟิกที่ทำงานในฐานะรูท
ในการรันแอปพลิเคชันในฐานะรูท (ทั้งแอปพลิเคชันข้อความหรือแอปพลิเคชัน GUI) เพียงใช้คำสั่งใดคำสั่งหนึ่ง:
sudo name-of-the-application
gksu name-of-the-application
พวกมันเกือบจะเหมือนกัน ความแตกต่างที่สำคัญคือครั้งแรกที่ถามรหัสผ่านของคุณใน terminal ที่สองใช้หน้าต่างโต้ตอบกราฟิก
sudo
และgksu
มีความสำคัญมากกว่าที่คุณป้อนรหัสผ่าน gksu
เป็นที่ต้องการสำหรับแอป GUI และsudo
สำหรับบรรทัดคำสั่งดูที่นี่และที่นี่
ไม่แนะนำให้รูทจริงๆสำหรับการใช้งานปกติ แต่บางครั้งคุณมีรายการคำสั่งเทอร์มินัลแบบยาวที่ต้องการสิทธิ์รูทและสะดวกในการล็อกอินเป็นรูท ฉันใช้sudo xterm
หรือgksu xterm
เปิดรูทเทอร์มินัลฉันคิดว่ามันง่ายกว่าที่จะแยกแยะว่าหน้าต่างคำใดที่มีสิทธิ์รูตเมื่อคุณมีพรอมต์คำว่า "root @"
หมายเหตุเพิ่มเติม: Ubuntu ไม่อนุญาตให้ผู้ใช้ GUI เข้าสู่ระบบในฐานะรูทเนื่องจาก Ubuntu ป้องกันไม่ให้คุณลบหรือลบไฟล์สำคัญด้วยแอป GUI (เช่นหอยโข่ง) โดยไม่ตั้งใจ
ด้วยอินเทอร์เฟซผู้ใช้ CLI เท่านั้นจึงสามารถลดความเสี่ยงจากความผิดพลาดของเราได้ แต่ก่อนหน้านี้เราไม่สามารถเข้าสู่ระบบได้ด้วยรูทแม้ในโหมด CLI เพราะ Ubuntu สร้างรหัสผ่านแบบสุ่มสำหรับรูท งานการดูแลรูตสามารถทำได้โดยใช้รหัสผ่านของผู้ใช้กับคำสั่ง sudo หรือ gksu
มันขึ้นอยู่กับกฎของเดเบียน
ระบุว่าไม่มีเหตุผลที่ดีในการเข้าสู่ระบบในฐานะ rootฉันจะเดาความแตกต่างระหว่าง RH (อนุญาตให้เข้าสู่ระบบ root) และ ubuntu (ทำทุกอย่างโดยใช้ sudo / gksu) เป็นเรื่องของการตั้งค่า
สำหรับส่วนอื่น ๆ ของคำถามของคุณคุณควรจะสามารถที่จะเรียกใช้การติดตั้งกราฟิกของคุณโดยการเข้าสู่ระบบในฐานะผู้ใช้ปกติกดและการป้อนALT-F2
gksu
ในกล่องโต้ตอบผลลัพธ์ให้ป้อนคำสั่งที่เรียกใช้โปรแกรมติดตั้งของคุณ
ไม่แนะนำให้รูทสำหรับงานประจำวันต่อวัน เนื่องจากมีการแสดงเหนือชั้นผู้ใช้จึงสามารถนำไปใช้ในทางที่ผิดได้ดังนั้นจึงไม่มีตัวเลือกสำหรับการเข้าสู่ระบบราก
คุณควรเข้าสู่ระบบด้วยตัวคุณเองและจากนั้น sudo เพื่อดำเนินการตามที่รูท อูบุนตูได้รับการตั้งค่าเพื่อให้คุณสามารถเข้าถึงได้ตามต้องการโดยค่าเริ่มต้น การเปลี่ยนแปลงเล็กน้อยจะดูแลส่วนที่เหลือ (เช่นการเพิ่มของคุณที่ใช้ในกลุ่มอื่น ๆ ) ถือว่าเป็นการปฏิบัติที่ไม่ดีในการเข้าสู่ระบบในฐานะ root แนวปฏิบัติที่ดีที่สุดในอุตสาหกรรมคือการตั้งค่าเริ่มต้นที่นี่
บางคนสามารถเข้าสู่ระบบในฐานะรูทอาจเป็นสิ่งที่แย่มากจากมุมมองด้านความปลอดภัย