如何为vagrant中尚不存在的用户安装目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为vagrant中尚不存在的用户安装目录相关的知识,希望对你有一定的参考价值。

我正在尝试使用共享文件夹机制在vagrant中安装数据磁盘,除了默认情况下vagrant拥有该目录并且tomcat6无法写入该目录外,该工作正常。所以我想我可以使用以下方法在vagrantfile中设置磁盘的所有者:

config.vm.synced_folder "data/", "/data", owner: "tomcat6", group: "tomcat6"

但是tomcat6用户还不存在,因为tomcat配方尚未运行,所以流浪者失败了:

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u tomcat6`,gid=`getent group tomcat6 | cut -d: -f3` data /data
mount -t vboxsf -o uid=`id -u tomcat6`,gid=`id -g tomcat6` data /data

The error output from the last command was:

stdin: is not a tty
id: tomcat6: no such user
id: tomcat6: no such user
uid= requires an argument (i.e. uid==<arg>)

现在我可以通过使用世界写入权限挂载/数据来解决这个问题但对我来说这似乎是“错误的”(即使在测试机器上)。

那么有什么方法可以让我在安装磁盘之前为我创建一个新用户,或者让Chef稍后为我配置一个共享磁盘?

答案

如果您知道未来用户的UID / GID是什么,您只需提供这些值而不是用户/组名称。例如如果'tomcat6'的GID / GID为11111,您可以在Vagrantfile中声明:

config.vm.synced_folder "data/", "/data", owner: "11111", group: "11111"

以上是关于如何为vagrant中尚不存在的用户安装目录的主要内容,如果未能解决你的问题,请参考以下文章

如何使用添加查询添加表中尚不存在的记录

运行 fat jar 的 ktor 抛出 java.lang.UnsupportedOperationException::Kotlin 反射中尚不支持包和文件外观

如果不存在则插入:SQLite

如何处理对尚不存在的对象的 ID 引用的 RestKit 嵌套数组?

如何为mysql分片集群设置片键

反应firebase firestore插入json