Raspbian โดยค่าเริ่มต้นมีการกำหนดค่าเพื่อให้บัญชี root ไม่สามารถเข้าสู่ระบบโดยใช้รหัสผ่าน สิ่งนี้ทำได้โดยเริ่มต้นด้วยรายการ/etc/passwordที่เริ่มต้น:
root:x:0:0:
ฟิลด์จะถูกคั่นด้วยโคลอนและอธิบายในman 5 passwd(โปรดสังเกตว่า5เนื่องจากman passwdจะให้ man page สำหรับคำสั่งpasswdส่วนที่ 5 ใช้สำหรับไฟล์คอนฟิกูเรชันและในกรณีนี้พวกเขามีชื่อเดียวกัน) นี่อันแรกคือชื่อ ( root) ที่สามและสี่คือ uid ตัวเลขและ gid (ทั้ง0) และที่สองคือรหัสผ่าน สำหรับรายการส่วนใหญ่จะเป็นแสดงให้เห็นรหัสผ่านที่แท้จริงอยู่ในไฟล์อื่นx/etc/shadow
โปรดทราบว่า "รหัสผ่านจริง" ไม่ได้เก็บไว้ที่ใด สิ่งที่เก็บไว้ในshadowนั้นคือแฮชแบบทางเดียวของรหัสผ่านจริง แฮชแบบทางเดียวคือผลลัพธ์ของกระบวนการซึ่งมักจะสร้างสิ่งเดียวกัน (อนุญาตให้ยืนยันรหัสผ่านของคุณ) แต่ไม่สามารถย้อนกลับได้ กล่าวอีกนัยหนึ่งถ้ามีใครจับมือshadowกันไม่มีทางที่จะอนุมานรหัสผ่านจากแฮช อย่างไรก็ตามหากพวกเขาสามารถแก้ไข shadowได้แน่นอนพวกเขาสามารถปิดใช้งานหรือเปลี่ยนแปลงสิ่งที่จะทำงานเป็นรหัสผ่าน แต่พวกเขาจะไม่สามารถค้นพบรหัสผ่านของคุณได้ นี่คือสาเหตุที่rootไม่สามารถทำเช่นนั้นได้ (แม้ว่ารูทสามารถเปลี่ยนเป็นอื่นได้โดยไม่ต้องใช้ต้นฉบับ)
ในกรณีของรูทรายการshadowเริ่มต้นเช่นนี้เช่นเดียวกับบัญชีระบบอื่น ๆ ส่วนใหญ่:
root:*:
ตัว*บ่งชี้ขณะนี้ไม่มีรหัสผ่านที่เป็นไปได้ซึ่งสามารถใช้สำหรับบัญชีนี้ได้
ผู้ใช้รูทสามารถเปลี่ยนสิ่งนี้ได้โดยใช้passwdคำสั่งเพื่อตั้งรหัสผ่านใหม่ซึ่งจะแทนที่*ด้วยแฮชที่กล่าวถึงก่อนหน้านี้ (สิ่งเหล่านี้เริ่มต้นเสมอ$n$โดยที่nค่าสุ่มบางอย่างที่ใช้เป็น "เกลือ" สำหรับแฮช แต่คุณไม่ต้อง ไม่จำเป็นต้องเข้าใจสิ่งนั้น)
อย่างไรก็ตามเมื่อฉันตั้งค่าการ์ดจากภาพสดสิ่งแรกที่ฉันทำคือเข้าไป/etc/passwdและลบxรายการของรูทตอนนี้เริ่ม:
root::0:0
สังเกตว่าตอนนี้ไม่มีฟิลด์ที่สอง วิธีการนี้มีรหัสผ่านไม่และสิ่งที่คุณต้องทำคือการพิมพ์ที่เข้าสู่ระบบที่รวดเร็วและคุณเข้าสู่ระบบในฐานะroot rootจากนั้นคุณสามารถใช้passwdเพื่อตั้งค่าหนึ่ง
ดังนั้นคุณมีสองตัวเลือกที่นี่ แต่พวกเขาทั้งคู่ต้องการให้คุณนำการ์ดออกจาก pi และเข้าถึงพาร์ติชั่นที่สองจากระบบอื่น (ที่สามารถอ่าน / เขียนพาร์ติชั่น ext4)
sudoersฟื้นฟู หากคุณมีภาพอ้างอิงนี่เป็นเรื่องง่ายคุณสามารถนำมันกลับมาได้เหมือนเดิมโดยแทนที่มัน ไม่อย่างนั้นมันจะเป็นตัวเลือกที่ซับซ้อนกว่าเพราะคุณต้องรู้ว่าคุณกำลังทำอะไร (และประวัติของคุณที่sudoersไม่ค่อยดี ... )
แก้ไข/etc/passwdและลบที่xอธิบายไว้ข้างต้นใส่การ์ดกลับเข้าสู่ระบบในฐานะrootสร้างรหัสผ่าน แน่นอนว่าคุณจะต้องแก้ไขsudoersแต่การทดลองและข้อผิดพลาดจะทำได้ง่ายขึ้นเพราะถ้าคุณเป็นจริงrootคุณจะสามารถเข้าถึงได้เสมอ
หากคุณไม่มีระบบที่สามารถเข้าถึงระบบไฟล์ ext4 (Debian "live CD" เป็นตัวเลือกที่ดีที่นี่) แสดงว่าคุณติดขัดอยู่ คุณจะต้อง reflash บัตรและเริ่มต้นอีกครั้ง