【发布时间】:2016-04-12 21:14:30
【问题描述】:
我想在运行homestead provision 后在我的虚拟机上运行自定义脚本。 homestead 提供的after.sh 以sudo 运行所有命令,而sudo 又相对于根目录运行并具有管理员权限。
有没有办法让我以非管理员身份使用after.sh?
【问题讨论】:
标签: laravel vagrant virtual-machine homestead
我想在运行homestead provision 后在我的虚拟机上运行自定义脚本。 homestead 提供的after.sh 以sudo 运行所有命令,而sudo 又相对于根目录运行并具有管理员权限。
有没有办法让我以非管理员身份使用after.sh?
【问题讨论】:
标签: laravel vagrant virtual-machine homestead
您可以在看到的部分之后编辑 Vagrantfile
if File.exists? afterScriptPath then
config.vm.provision "shell", path: afterScriptPath
end
您可以添加自己的配置,例如
config.vm.provision "shell", path: confDir + "/afterNonRoot.sh", privileged: false
并使用您要运行的命令创建一个afterNonRoot.sh 脚本文件。将文件保存在默认after.sh旁边
添加 privileged: false 确保脚本将以非管理员权限的 vagrant 用户身份运行
如果你不想改变 vagrant/homestead 运行脚本的方式,我唯一能想到的就是仍然以root 用户身份运行after.sh,但你可以以@987654328 身份运行命令@ 其中xxx是你要执行的命令
【讨论】:
composer/vendor 目录,这就是存储VagrantFile 的地方
su -u vagrant -c command运行命令