Sometimes in Linux when adding a user using the useradd command it throws the error 'Cannot lock /etc/passwd; try again later' as shown below:
#useradd test useradd: cannot lock /etc/passwd; try again later
The system files that are related to Linux user management are,
/etc/passwd : Contains user account information /etc/shadow: Contains secured account information (encrypted password) /etc/group : Contains group account Information /etc/gshadow : Contains secured group information (encrypted group password)
When you create or modify a user, some lock files will get created to prevent concurrent modification of these system files. The lock files are,
/etc/passwd.lock /etc/shadow.lock /etc/group.lock /etc/gshadow.lock
These files should get automatically removed once the command useradd or usermod finishes. Sometimes, you may encounter situations (bugs) where some of these files may not get properly unlocked after the execution of the command. In that case, when you execute useradd next time, it may show the error 'cannot lock /etc/password' or 'unable to lock group file'. So, if you get any such errors, check for any lock files under /etc.
# cd /etc # ls –l *.lock
If you find any lock files named passwd.lock, shadow.lock, group.lock or gshadow.lock, remove it.
# rm –rf /etc/passwd.lock # rm –rf /etc/shadow.lock # rm –rf /etc/group.lock # rm –rf /etc/gshadow.lock
In case you are unable to find the .lock file try remount root partition with read/write -
sudo mount -o remount,rw /.
The problem could be also related to free space on the filesystem use df or strace (strace -f -e trace=filename) command to check.
Now, you should be able to execute useradd without any errors. You should also ensure that your file system has not gone into read-only mode. That will definitely cause an issue.