ฉันป้อนผิดพลาด
chsh -s /usr/bin
แทน
chsh -s /bin/bash
และตอนนี้ฉันไม่สามารถเข้าสู่รูทเชลล์ฉันจะเริ่มเชลล์ bash ในฐานะรูทด้วยตนเองได้อย่างไร
sudo vipw
ทำงานหรือไม่
ฉันป้อนผิดพลาด
chsh -s /usr/bin
แทน
chsh -s /bin/bash
และตอนนี้ฉันไม่สามารถเข้าสู่รูทเชลล์ฉันจะเริ่มเชลล์ bash ในฐานะรูทด้วยตนเองได้อย่างไร
sudo vipw
ทำงานหรือไม่
คำตอบ:
ในขณะที่รูทไม่สามารถเข้าถึงผู้ใช้ในกลุ่ม sudo ยังสามารถเรียกใช้คำสั่งพิเศษได้ - ดูเหมือนว่าข้อผิดพลาดไม่ได้อยู่ใน sudo แต่ที่อื่นในsudo chsh
คำสั่ง (เช่น chsh error)
เห็นได้ชัดว่า sudo ของคุณทำงานได้
ไฟล์ passwd สามารถแก้ไขได้ด้วย:
sudo vipw
และรูทเชลล์เปลี่ยนไปด้วยตนเอง
( /etc/passwd
โดยทั่วไปบรรทัดแรก)
root:x:0:0:root:/root:/bin/bash
Fom man vipw
คำสั่ง vipw และ vigr แก้ไขไฟล์ / etc / passwd และ / etc / group ตามลำดับ ด้วยแฟล็ก -s พวกเขาจะแก้ไขเวอร์ชันเงาของไฟล์เหล่านั้น / etc / shadow และ / etc / gshadow ตามลำดับ โปรแกรมจะตั้งค่าการล็อคที่เหมาะสมเพื่อป้องกันความเสียหายของไฟล์
vipw
และvigr
ขอขอบคุณ! ฉันมักจะใช้sudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html เช่นกัน @tac
sudo -e
ที่ใช้คุณสมบัติการล็อคการแก้ไขสำหรับการแก้ไขใด ๆ
ตัวเลือกอื่นสมมติว่าคุณมีสิทธิ์เข้าถึงบัญชีอื่นคือการแทนที่เชลล์เริ่มต้นด้วยตนเองโดยใช้su --shell=/bin/bash
:
-s, - เชลล์ = SHELL
เรียกใช้ SHELL หาก / etc / shells อนุญาต
ประโยชน์หลักของเรื่องนี้ก็คือว่ามันเพียง แต่ต้องมีการเข้าถึงไปยังบัญชีอื่นอีกไม่ได้รับการยกเว้นหนึ่ง
เพื่อเหตุผลด้านความปลอดภัยเข้าสู่ระบบไม่ว่าจะเป็นข้อความหรือกราฟิกและยูทิลิตี้เช่นนั้นsu
และsudo
ช่วยให้คุณสามารถเรียกใช้คำสั่งในฐานะผู้ใช้ที่แตกต่างกันทั้งหมดเรียกใช้คำสั่งเหล่านั้นผ่านเปลือกของผู้ใช้เป้าหมาย หากเชลล์ผู้ใช้เป้าหมายไม่ทำงานคุณก็จะเห็นผลลัพธ์ :-(
เว้นแต่ว่าคุณมีรูทเชลล์ที่ใช้งานได้อยู่หรือบางอย่างเช่น setuid-root binary หรืออะไรบางอย่างที่ทำให้คุณสามารถหลีกเลี่ยงสิ่งนี้ได้การรีบูตและแก้ไขปัญหาโดยใช้ระบบช่วยเหลือหรือภาพสดน่าจะเป็นทางออกที่ดีที่สุดของคุณ
บูตระบบช่วยเหลือติดตั้งระบบไฟล์รูทของระบบจริงที่ใดที่หนึ่งพูด/mnt/foo
และแก้ไข/mnt/foo/etc/passwd
เพื่อแก้ไขเชลล์ บันทึกเลิกเมานท์และคุณทำเสร็จแล้ว
/etc/passwd
ไม่ธรรมดา ฉันไม่ได้เห็นอย่างน้อยก็เหมือนทศวรรษ มันยังมีบางอย่างในบางระบบหรือไม่? อย่างไรก็ตามฉันเดาว่าchroot /mnt/foo chsh -s /bin/bash
อาจจะใช้กลอุบายในกรณีนี้ได้?
เพิ่มinit=/bin/bash
ไปยังบรรทัดคำสั่งเคอร์เนลของคุณ (หากบูตด้วย grub กดe
เพื่อแก้ไขรายการบูต) และคุณจะมี bash shell ที่ทำงานเป็นรูทโดยไม่ต้องป้อนรหัสผ่าน ระบบไฟล์รูทของคุณจะยังคงติดตั้งแบบอ่านอย่างเดียวดังนั้นคุณจะต้องติดตั้งใหม่ก่อนจากนั้นคุณสามารถเปลี่ยนเชลล์กลับมาchsh
ได้
sudo usermod -s /bin/bash jdoe
จะเปลี่ยนเปลือกของjdoebash
ไป จากนั้นคุณสามารถsudo egrep jdoe /etc/passwd
ตรวจสอบ