sudo useradd:无法锁定/etc/passwd;稍后再试(没有锁定文件)

5 server sudo lock passwd-file

在 Ubuntu 服务器 14.04 上执行此操作时:

camilstaps@localhost:~$ sudo useradd --home-dir /var/www/xxx.camilstaps.nl/ --no-create-home --root /var/www/xxx.camilstaps.nl/ --shell /bin/sh xxx
Run Code Online (Sandbox Code Playgroud)

我收到错误:

useradd: cannot lock /etc/passwd; try again later.
Run Code Online (Sandbox Code Playgroud)

我检查并尝试了以下内容(在互联网上找到了建议):

  • 显然,我正在使用 sudo
  • 存在一个文件 /etc/.pwd.lock,但它是空的,删除它没有帮助
  • /etc 目录中没有其他 *.lock 文件
  • 文件系统未满(/上有 14G 可用)
  • 重新启动服务器不会解除锁定。

我难住了。如何解锁/etc/passwd?


df -ih 输出

camilstaps@localhost:~$ df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/vda1        1,3M  228K  1,1M   18% /
none             125K     4  125K    1% /sys/fs/cgroup
udev             124K   404  123K    1% /dev
tmpfs            125K   386  124K    1% /run
none             125K     5  125K    1% /run/lock
none             125K     1  125K    1% /run/shm
none             125K     2  125K    1% /run/user
Run Code Online (Sandbox Code Playgroud)

小智 1

您可以使用adduser代替useradd. adduser还提供交互式会话来配置 Linux 用户,并/home/username/自动创建必要的目录。

sudo adduser <username>
Run Code Online (Sandbox Code Playgroud)

adduser顺便说一句,和之间没有区别useradd。它们都有相同的目的。


Tre*_*ect 0

找到了这个,这解决了问题

\n\n

您需要删除所有四个文件,然后尝试

\n\n
/etc/passwd.lock\n/etc/shadow.lock\n/etc/group.lock\n/etc/gshadow.lock\n
Run Code Online (Sandbox Code Playgroud)\n\n

以 root 用户身份登录

\n\n
$ sudo su \n
Run Code Online (Sandbox Code Playgroud)\n\n
rm \xe2\x80\x93rf /etc/passwd.lock\nrm \xe2\x80\x93rf /etc/shadow.lock\nrm \xe2\x80\x93rf /etc/group.lock\nrm \xe2\x80\x93rf /etc/gshadow.lock\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后尝试你的命令。

\n\n
camilstaps@localhost:~$ sudo useradd --home-dir /var/www/xxx.camilstaps.nl/ --no-create-home --root /var/www/xxx.camilstaps.nl/ --shell /bin/sh xxx\n
Run Code Online (Sandbox Code Playgroud)\n