ฉันเปลี่ยนบรรทัดสุดท้ายใน / etc / passwd และฉันไม่สามารถใช้ sudo ได้


15

นี่คือสิ่งที่ฉันได้ทำ:

  1. เปลี่ยนชื่อผู้ใช้ในบรรทัดสุดท้าย: tinyเป็นabc

    • tiny@tty7:~$ sudo vim /etc/passwd
    • เปลี่ยนสิ่งนี้
      tiny:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
      เป็นสิ่งนี้:
      abc:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
  2. tiny@tty7:~$ sudo vim /etc/shadow

    • มันแสดงให้เห็น: [sudo] passwork for abc:

    • ฉันไม่ได้เปลี่ยนรหัสผ่าน แต่เข้าสู่ระบบไม่ได้!

    • ฉันพิมพ์Ctrl+ Alt+ F1ไปtty1แต่ไม่เล็กหรือเอบีซีไม่สามารถเข้าสู่ระบบด้วยรหัสผ่านของฉัน

และฉันพยายามที่จะดูที่ls ~ -laนี่มันแสดงให้เห็นเช่นนี้:

drwxr-xr-x 28 abc tiny 4096 Apr 6 03:04 .

ฉันจะเข้าสู่ระบบได้อย่างไร และทำไมชื่อผู้ใช้ในพรอมต์tiny@tty7ยังเล็กในขณะที่ sudo มันแสดงรหัสผ่านของ abc

คำตอบ:


18

เหตุผลที่คุณได้ติดอยู่หลังจากการแก้ไขของคุณก็คือ/etc/shadowไฟล์ที่มีรายการสำหรับรหัสผ่าน ๆtinyแต่รายการไม่abcในขณะที่/etc/passwdไฟล์ที่มีรายการการและไม่ได้สำหรับabc tinyเมื่อsudoดูแล้วจะระบุว่าคุณอย่างถูกต้อง (ตามไฟล์รหัสผ่าน) abcตาม UID ของกระบวนการที่คุณกำลังทำงานอยู่ แต่เมื่อดูเปรียบเทียบสิ่งที่คุณป้อนเป็นรหัสผ่านของคุณด้วยรหัสผ่านที่เข้ารหัส (แฮช) ที่เก็บไว้ใน/etc/shadowนั้น ไม่พบรายการสำหรับabcดังนั้นจึงต้องรายงานความล้มเหลว

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


22

คุณจะต้องไม่แก้ไขไฟล์ passwd ของคุณด้วยตนเองเพราะคุณจะทำสิ่งที่ยุ่งเหยิง

วิธีที่เหมาะสมในการเปลี่ยนชื่อผู้ใช้ของคุณคือ:

usermod -l newUsername oldUsername

จากนั้นเปลี่ยนโฟลเดอร์บ้าน:

usermod -d /home/newHomeDir -m newUsername

ในการเปลี่ยนรหัสผ่านคุณควรใช้:

sudo passwd yourusername

ฉันขอแนะนำให้คุณย้อนกลับไฟล์ passwd ของคุณกลับหรือถ้าคุณไม่สามารถแก้ไขได้เพราะคุณไม่สามารถเข้าสู่ระบบด้วยรูท - จากนั้นบูตด้วย live cd และเปลี่ยนไฟล์กลับ จากนั้นใช้วิธีการที่เหมาะสม


1
ขอบคุณ ~ ฉันคิดว่าสิ่งที่ยากที่สุดคือการเข้าสู่ระบบด้วยรูทจากนั้นฉันรีบูตเลือกโหมดการค้นพบใหม่รูทจากนั้นรับไฟล์ passwd ของฉันกลับมา ~ มันใช้งานได้ ~
tinyork


-3

ขั้นตอนการเปลี่ยนชื่อผู้ใช้ของคุณ (แต่ไม่ใช่ uid) ด้วยตนเอง:

  1. มีการตรวจสอบหัวของคุณเมื่อล้มเหลวดำเนินการขั้นตอนที่สอง
  2. แก้ไขไฟล์เงาทำซ้ำบรรทัดผู้ใช้ด้วยชื่อผู้ใช้ใหม่
  3. แก้ไขกลุ่ม sudoers อนุญาตการอนุญาตชื่อผู้ใช้ใหม่ให้เก่า
  4. เชื่อมโยงโฮมไดเรกทอรีสัญลักษณ์กับชื่อใหม่
  5. แก้ไขไฟล์ passwd เปลี่ยนชื่อผู้ใช้และไดเรกทอรีบ้าน
  6. แก้ไขเงา, sudoers, กลุ่มเพื่อลบรายการเก่าที่เราเก็บไว้ในขั้นตอนที่สาม
  7. แก้ไขนามแฝงและการอ้างอิงอื่น ๆ ไปยังชื่อผู้ใช้เก่า
  8. ออกจากระบบสลับไปที่คอนโซลข้อความ (ขั้นตอนต่อไปจะไม่ทำงานหากโปรแกรมใดทำงานในไดเรกทอรีบ้านของผู้ใช้รวมถึงตัวจัดการหน้าต่าง)
  9. cd ไปยังไดเร็กทอรีเหนือโฮมไดเร็กตอรี่ของคุณ
  10. ลบลิงก์สัญลักษณ์และเปลี่ยนชื่อโฮมไดเร็กทอรี
  11. ออกจากระบบและเข้าสู่ระบบตามปกติ

สิ่งต่างๆนั้นง่ายกว่ามากในการเปลี่ยนชื่อผู้ใช้อื่น ๆ แม้ว่าจะยังไม่ง่ายนัก

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