1. ทำไมคุณไม่มีรหัสผ่านรูต
ในขณะที่คุณสามารถสร้างรหัสผ่านสำหรับบัญชี superuser ที่อนุญาตให้คุณเข้าสู่ระบบด้วยรูทsu
แต่ก็มีมูลค่าการกล่าวถึงว่านี่ไม่ใช่วิธีปกติในการทำสิ่งต่าง ๆ กับ Ubuntu (หรือการกระจายอื่น ๆ มากขึ้น) Ubuntu เลือกที่จะไม่ให้การเข้าสู่ระบบและรหัสผ่านรูทโดยค่าเริ่มต้นด้วยเหตุผล แต่การติดตั้งเริ่มต้นของ Ubuntu จะใช้sudo
เพื่อให้สิทธิ์ผู้ใช้ระดับสูงแทน ในการติดตั้งอูบุนตูเริ่มต้นผู้ที่ติดตั้งระบบปฏิบัติการจะได้รับสิทธิ์ "sudo" เป็นค่าเริ่มต้น
ใครก็ตามที่ได้รับอนุญาต "sudo" เต็มรูปแบบอาจดำเนินการบางอย่าง "เป็น superuser" โดยรอsudo
คำสั่งล่วงหน้า ตัวอย่างเช่นหากต้องการใช้apt-get dist-upgrade
เป็น superuser คุณสามารถใช้:
sudo apt-get dist-upgrade
คุณจะเห็นการใช้งาน sudo ได้ทุกที่ที่คุณอ่านบทช่วยสอนเกี่ยวกับ Ubuntu บนเว็บ มันเป็นทางเลือกในการทำสิ่งนี้
su
apt-get dist-upgrade
exit
ด้วย sudo คุณจะต้องเลือกล่วงหน้าว่าผู้ใช้คนใดที่สามารถเข้าถึง sudo ได้ พวกเขาไม่จำเป็นต้องจำรหัสผ่านรูทเนื่องจากพวกเขาใช้รหัสผ่านของตัวเอง หากคุณมีผู้ใช้หลายคนคุณสามารถเพิกถอนการเข้าถึง superuser เพียงแค่ลบการอนุญาต sudo โดยไม่ต้องเปลี่ยนรหัสผ่านรูทและแจ้งรหัสผ่านใหม่ให้ทุกคนทราบ คุณสามารถเลือกได้ว่าคำสั่งใดที่ผู้ใช้ได้รับอนุญาตให้ใช้งานโดยใช้ sudo และห้ามใช้คำสั่งใดสำหรับผู้ใช้นั้น และในที่สุดหากมีการละเมิดความปลอดภัยในบางกรณีอาจทำให้การตรวจสอบบัญชีแสดงว่าบัญชีผู้ใช้ใดถูกบุกรุก
Sudo ทำให้คำสั่งเดียวง่ายขึ้นด้วยสิทธิ์ superuser กับsu
คุณอย่างถาวรลดลงเปลือก superuser ซึ่งจะต้องออกมาใช้หรือexit
logout
สิ่งนี้สามารถนำไปสู่คนที่อยู่ใน superuser shell ได้นานกว่าความจำเป็นเพียงเพราะสะดวกกว่าการออกจากระบบและอีกครั้งในภายหลัง
ด้วย sudo คุณยังคงมีตัวเลือกในการเปิดเชลล์ superuser แบบโต้ตอบ (ถาวร) ด้วยคำสั่ง:
sudo su
... และสิ่งนี้สามารถทำได้โดยไม่ต้องใช้รหัสผ่านรูทใด ๆ เพราะsudo
ให้สิทธิ์ superuser แก่su
คำสั่ง
และในทำนองเดียวกันแทนsu -
สำหรับเปลือกเข้าสู่ระบบที่คุณสามารถใช้หรือทางลัดsudo su -
sudo -i
อย่างไรก็ตามเมื่อทำเช่นนั้นคุณต้องระวังว่าคุณทำตัวเป็น superuser สำหรับทุกคำสั่ง เป็นหลักการด้านความปลอดภัยที่ดีที่จะไม่คงอยู่ในฐานะผู้ใช้ระดับสูงนานกว่าที่จำเป็นเพียงเพื่อลดความเป็นไปได้ที่จะเกิดความเสียหายกับระบบโดยไม่ตั้งใจ (โดยที่คุณไม่สามารถทำได้
เพียงแค่ชี้แจงให้ชัดเจนคุณสามารถให้รหัสผ่านแก่ผู้ใช้รูทเพื่อให้การเข้าสู่ระบบเป็น root ตามที่อธิบายไว้ในคำตอบของ @ Oli หากคุณต้องการทำสิ่งนี้โดยเฉพาะแทน ฉันแค่อยากจะบอกให้คุณรู้เกี่ยวกับแบบแผนของ Ubuntu ที่ชอบsudo
และบอกให้คุณรู้ว่ามีทางเลือกอื่น
2. ปัญหาเกี่ยวกับคำสั่ง chmod 777 -R ของคุณ
คำถามของคุณนอกจากนี้ยังมีส่วนที่สองไป: sudo chmod 777 -R foobs
ปัญหาของคุณกับคำสั่ง
ประการแรกคำเตือนต่อไปนี้ระบุถึงปัญหาความปลอดภัยที่ร้ายแรงที่อาจเกิดขึ้นกับเครื่องของคุณ:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
ซึ่งหมายความว่าในบางขั้นตอนคุณได้กำหนด/var/lib/sudo
ให้สามารถเขียนได้ทั่วโลก sudo chmod 777 -R /
ผมคิดว่าคุณได้ทำนี้ที่บางขั้นตอนโดยใช้คำสั่งเช่น น่าเสียดายที่การทำเช่นนี้คุณอาจทำผิดสิทธิ์การใช้งานไฟล์ทั้งหมดในระบบของคุณ ไม่น่าเป็นไปได้ที่ไฟล์นี้จะเป็นไฟล์ระบบที่สำคัญเพียงไฟล์เดียวเท่านั้นที่มีการเปลี่ยนการอนุญาตเป็นแบบเขียนได้ทั่วโลก โดยพื้นฐานแล้วคุณมีระบบที่แฮ็คได้ง่ายในตอนนี้และวิธีเดียวที่จะเอากลับคืนมาได้อย่างง่ายดายก็คือติดตั้งใหม่
ประการที่สองคำสั่งที่คุณใช้:
sudo chmod 777 -R foobs
เมื่อจัดการไฟล์ภายในโฮมไดเร็กตอรี่ของคุณ, ในกรณีนี้~/Desktop
, คุณไม่ควรใช้sudo
. ไฟล์ทั้งหมดที่คุณสร้างในโฮมไดเร็กตอรี่ของคุณควรจะสามารถแก้ไขได้โดยคุณ
นอกจากนี้คุณต้องระวังผลที่เกิดจากการเปลี่ยนแปลงการอนุญาตของไฟล์เช่นการทำซ้ำหรือไฟล์จำนวนมาก ในกรณีนี้คุณกำลังเปลี่ยนการตั้งค่าการอนุญาตไฟล์เป็นแบบเขียนได้ทั่วโลก ผู้ใช้รายอื่นหรือซอฟต์แวร์เซิร์ฟเวอร์ buggy บนเครื่องอาจสามารถเข้าถึงเขียนทับไฟล์และไดเรกทอรีเหล่านี้ได้อย่างง่ายดาย
มันเกือบจะแน่นอนว่าchmod 777 -R [dir]
มันไม่ได้เป็นทางออกที่เหมาะสมสำหรับปัญหาใด ๆ ที่คุณกำลังพยายามที่จะแก้ไข (และอย่างที่ฉันได้กล่าวไว้ข้างต้นมีหลักฐานว่าคุณได้ทำมันกับไฟล์ระบบใน / var / lib ด้วยและฉันคิดว่า สถานที่)
กฎพื้นฐานง่ายๆสองข้อ:
หากคุณเพียงแค่ล้อเล่นกับไฟล์ของคุณเองในโฮมไดเร็กตอรี่เดสก์ท็อป ฯลฯ คุณไม่จำเป็นต้องใช้sudo
สิทธิ์หรือ superuser หากคุณเป็นสัญญาณเตือนว่าคุณกำลังทำอะไรผิด
คุณไม่ควรแก้ไขไฟล์ระบบที่แพ็กเกจเป็นเจ้าของด้วยตนเอง ข้อยกเว้น: /etc
ถ้าคุณกำลังทำมันโดยเฉพาะในรูปแบบที่รับรองโดยแพคเกจเหล่านั้นเช่นโดยการปรับเปลี่ยนการตั้งค่าของพวกเขาใน สิ่งนี้ใช้กับการเปลี่ยนการอนุญาตไฟล์ด้วย หากบทช่วยสอนหรือพยายามแก้ไขปัญหานั้นต้องการsudo
สิทธิ์หรือสิทธิ์ของผู้ใช้ระดับสูงและไม่ใช่เพียงแค่การเปลี่ยนแปลงการกำหนดค่าใน / etc / นั่นเป็นสัญญาณเตือนว่าคุณกำลังทำสิ่งผิดปกติ
chmod -R 777 whatever
เว้นแต่ว่าคุณต้องการก่อให้เกิดความเสี่ยงด้านความปลอดภัย