With several commands in Linux, I get the error:
cannot lock /etc/passwd; try again later.Does anybody know how to solve it? Also I don't get in my /etc/shadow directory.
39 Answers
If no .lock files are present but you still cannot create a user try the following
sudo mount -o remount,rw /If logged in as root then use
mount -o remount,rw / 4 The user you are running the commands as lack the required privileges. Change to root user by issuing the command
su -or if you have/use sudo
sudo <command to run> If you have -R /some/chroot added to your useradd command, that might be the problem.
I thought it meant that the user would be jailed upon login, but that's not the case. By looking at strace output, I saw useradd chrooted into the specified directory, after which of course it cannot find /etc/passwd anymore. So I'm not sure what the option is for, but there's your (well, my) problem.
2That's because you don't have permissions for those operations
- You can't read
/etc/shadow - You can't directly modify
/etc/passwd
You can change both files through specialized commands (e.g you can change your password).
1I ran into this when a disk error occurred during a userdel operation and the system had to be rebooted. I needed to delete all four of the following files to proceed:
sudo rm /etc/passwd.lock
sudo rm /etc/shadow.lock
sudo rm /etc/group.lock
sudo rm /etc/gshadow.lock This can also be caused by running out of space on the root filesystem. Use strace to be sure. strace is your friend.
A demo of this error on 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 gives you the permission to lock it.
user@mybox:/home$ sudo userdel eric
user@mybox:/home$ Look for /etc/group.lock, /etc/passwd.lock and /etc/shadow.lock files and remove them.
Be careful to only remove the files ending in 'lock' or else you might damage your system.
Reference:
Had same issue, since /etc was full. This is why /etc/passwd could not be written. Make sure that you have enough space on /etc, if not then enlarge it or clean unnecessary stuff.