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