useradd --prefix 选项

useradd --prefix 选项

如果我没记错的话,--prefix的选项useradd应该允许我从我选择的目录中更改 etc 文件,但奇怪的是它添加了一个额外的/.

如果有人问的话,我正在使用 Linux Mint 21.1 mate 64 位版本。

我执行的整个命令是这样的:

useradd -R /home/user/fakeroot -P  /home/user/Desktop newuser

这是我得到的输出

useradd: /home/user/Desktop//etc/passwd.37507: No such file or directory
useradd: cannot lock /home/user/Desktop//etc/passwd; try again later.

我怎样才能摆脱多余的东西/

答案1

额外的/无关紧要。连续的/被折叠成一个,没有错误消息,也没有问题。例如:

$ pwd
/home/terdon
$ cd ///////////////etc
$ pwd
/etc
$ cd //////usr/////local//////bin
$ pwd
/usr/local/bin

现在,-P选项adduser是:

-P, --前缀 PREFIX_DIR

将更改应用于目录 PREFIX_DIR 下的根文件系统下的配置文件。此选项不会 chroot,旨在准备交叉编译目标。一些限制:NIS 和 LDAP 用户/组未经过验证。 PAM 身份验证使用主机文件。没有 SELINUX 支持。

-R选择是:

-R, --root CHROOT_DIR

应用 CHROOT_DIR 目录中的更改并使用 CHROOT_DIR 目录中的配置文件。仅支持绝对路径。

我怀疑同时使用它们没有意义,它们基本上以不同的方式做同样的事情。我不知道这里的细节,我可能是错的,但根据你的输出,看起来 正在-P覆盖-R.很可能,这两个选项在 的代码中设置了相同的变量adduser,而您最后给出的选项会覆盖前一个选项。

据推测,您在 下设置了有效的 chroot 环境/home/user/fakeroot,但由于-P /home/user/Desktop您没有使用它,而是adduser正在寻找/home/user/Desktop/etc而不是/home/user/fakeroot/etc

我认为您只想使用这两个选项之一,而不是同时使用两者。如果您解释一下您真正想要实现的目标是什么,您想要的最终结果是什么,我们也许能够提供更多帮助。

相关内容