ไม่สามารถล็อค / etc / passwd; ลองอีกครั้งในภายหลัง


30

ด้วยหลายคำสั่งใน Linux ฉันได้รับข้อผิดพลาด:

cannot lock /etc/passwd; try again later.

ใครรู้วิธีแก้ปัญหาหรือไม่ นอกจากนี้ฉันไม่ได้อยู่ในไดเรกทอรี / etc / shadow ของฉัน


2
คุณต้องเพิ่มระดับผู้ใช้ของคุณโดยใช้คำสั่ง "sudo" หรือ "su"
Raptor

4
ไดเร็กทอรี / etc / shadow ของคุณ?!? / etc / shadow ควรเป็นไฟล์ โปรดระบุคำสั่งที่แน่นอนที่คุณพยายามเรียกใช้
ไบรอันไวท์

3
ในกรณีของฉันระบบไฟล์รูทเต็ม :-p

คำตอบ:


22

หากไม่มี.lockไฟล์อยู่ แต่คุณยังไม่สามารถสร้างผู้ใช้ได้ลองทำสิ่งต่อไปนี้

sudo mount -o remount,rw /

หากเข้าสู่ระบบในฐานะrootใช้แล้ว

mount -o remount,rw /

วิธีนี้แก้ไขปัญหาที่ฉันมีหลังจากบูตเข้าสู่โหมดการกู้คืนโดยแก้ไขรายการด้วง
twobeers

แต่ที่หนึ่งจะมองหา.lockไฟล์? ขอบคุณ @trevorRobinson ดูเหมือนว่าคนเราควรมองเข้าไป/etc/ถูกต้องหรือไม่
hello_there_andy

mount: cannot remount /dev/dm-0 read-write, is write-protectedเกิดอะไรขึ้นถ้ามันบอกว่า ฉันอยู่ใน ChromeOS (Linux) พร้อมเปิดใช้งานโหมด Dev
trusktr

ทำไมนี่ไม่ใช่คำตอบที่ยอมรับได้?
math2001

9

นั่นเป็นเพราะคุณไม่มีสิทธิ์สำหรับการดำเนินการเหล่านั้น

  • คุณอ่านไม่ออก /etc/shadow
  • คุณไม่สามารถแก้ไขได้โดยตรง /etc/passwd

คุณสามารถเปลี่ยนไฟล์ทั้งสองผ่านคำสั่งพิเศษ (เช่นคุณสามารถเปลี่ยนรหัสผ่าน)


1
ในการเปลี่ยนรหัสผ่านให้ใช้ "passwd <username>"
Raptor

9

ผู้ใช้ที่คุณกำลังเรียกใช้คำสั่งขาดสิทธิ์ที่จำเป็น เปลี่ยนเป็นrootผู้ใช้โดยออกคำสั่ง

su -

หรือถ้าคุณมี / ใช้ sudo

sudo <command to run>

6

สิ่งนี้อาจเกิดจากการใช้พื้นที่ว่างบนระบบไฟล์รูทไม่เพียงพอ ใช้straceเพื่อให้แน่ใจ straceเป็นเพื่อนของคุณ.


ฉันอ่านหัวข้อมากมายเกี่ยวกับปัญหาของฉันและนั่นเป็นวิธีแก้ปัญหา ควรเป็นหนึ่งในสิ่งแรกที่ต้องตรวจสอบเมื่อมีปัญหาระบบไฟล์ฉันเดา ฉันใช้dfแทนstraceแม้ว่า จะstraceช่วยฉันได้อย่างไร ไม่เคยใช้มัน
erikbwork

2
ถ้าคุณเดาแล้วว่าปัญหาอาจหมดพื้นที่แล้ว df สามารถช่วยได้ แต่ strace จะบอกคุณว่ารหัสข้อผิดพลาดคืออะไรเมื่อพยายามล็อคไฟล์ดังนั้นจึงควรลบการคาดเดา วิธีที่ฉันมักจะเรียก strace คือstrace -f -e trace=file คำสั่งเนื่องจากมักจะให้ผลลัพธ์ที่มีประโยชน์มากที่สุด
Robin Green

6

ฉันพบปัญหานี้เมื่อมีข้อผิดพลาดของดิสก์เกิดขึ้นในระหว่างการดำเนินการของผู้ใช้และระบบจะต้องรีบูท ฉันต้องการลบไฟล์สี่ไฟล์ต่อไปนี้เพื่อดำเนินการต่อ:

sudo rm /etc/passwd.lock
sudo rm /etc/shadow.lock
sudo rm /etc/group.lock
sudo rm /etc/gshadow.lock

6

หากคุณ-R /some/chrootเพิ่มลงในuseraddคำสั่งของคุณนั่นอาจเป็นปัญหา

ฉันคิดว่ามันหมายความว่าผู้ใช้จะถูกจำคุกเมื่อเข้าสู่ระบบ แต่นั่นไม่ใช่กรณี โดยการดูที่เอาต์พุต strace ฉันเห็น useradd chrooted ลงในไดเร็กทอรีที่ระบุหลังจากนั้นแน่นอนไม่สามารถค้นหา / etc / passwd ได้อีก ดังนั้นฉันไม่แน่ใจว่าตัวเลือกนั้นมีไว้สำหรับอะไร แต่มีปัญหา (ของฉัน) ของคุณ


นี่คือสิ่งที่ฉันพยายาม หลังจากลบ-R [dir]ตัวเลือกฉันสามารถสร้างผู้ใช้
Gustavo Straube

เป็นการเดาที่ดี! ขอขอบคุณ. ฉันก็เข้าใจว่า chroot สำหรับuseraddไม่ใช่สิ่งที่คุณคิดว่ามันเป็น :) มันใช้ dir ที่ระบุเป็นรากสำหรับระบบของผู้ใช้เท่านั้น มันเป็นประโยชน์สำหรับการโคลนแยกย่อย OS ซึ่งจะไม่ค่อยมีสิ่งที่คุณต้องการ ...
Ninj

2

ฉันพบปัญหานี้เมื่อมีข้อผิดพลาดของดิสก์เกิดขึ้นในระหว่างการดำเนินการของผู้ใช้และระบบจะต้องรีบูท ฉันต้องการลบไฟล์สี่ไฟล์ต่อไปนี้เพื่อดำเนินการต่อ:

sudo rm /etc/passwd.lock
sudo rm /etc/shadow.lock
sudo rm /etc/group.lock
sudo rm /etc/gshadow.lock

คำสั่งนี้ช่วยฉันได้จริงๆ ขอบคุณมาก.


นี่เป็นคำวิจารณ์ขอบคุณสำหรับคำตอบก่อนหน้า
suspectus

1

ตัวอย่างข้อผิดพลาดนี้บน Ubuntu 14.04:

user@mybox:/home$ sudo useradd eric
user@mybox:/home$ userdel eric
userdel: Permission denied.
userdel: cannot lock /etc/passwd; try again later.

sudo อนุญาตให้คุณล็อคมัน

user@mybox:/home$ sudo userdel eric
user@mybox:/home$

1

ค้นหาไฟล์ /etc/group.lock, /etc/passwd.lock และ /etc/shadow.lock และลบออก

ใช้ความระมัดระวังในการลบไฟล์ที่ลงท้ายด้วย 'ล็อค' มิฉะนั้นคุณอาจสร้างความเสียหายให้กับระบบของคุณ

การอ้างอิง: https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/523896


1

มีปัญหาเดียวกันตั้งแต่ / etc เต็ม นี่คือสาเหตุที่ / etc / passwd ไม่สามารถเขียนได้ ตรวจสอบให้แน่ใจว่าคุณมีพื้นที่เพียงพอใน / etc หากไม่ขยายหรือทำความสะอาดสิ่งที่ไม่จำเป็น

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