我无法将这个问题归类为 ubuntu,因为它与它无关。但我知道这里的人肯定可以回答这个问题。我使用 SSH 登录到我的一个部署箱(这里没有 ubuntu)。
我正在使用一个名为 TeamCity 的工具,它使用用户主目录下的一个名为“.BuildServer”的文件夹。此文件夹的大小可能会随着应用程序的运行而增大,但当前用户只能获得有限的空间。但好消息是,我获得了 /home/deploy(deploy 是这里的用户)文件夹之外的文件夹访问权限。我现在想将 /home/deploy 目录中的这个 .BuildServer 链接到我获得权限的其他文件夹(这意味着所有文件都应重新路由到该目录)
希望我的问题清楚,请帮忙。
答案1
如果您想指向/home/deploy/.BuildServer
其他目录,您有多种选择/under_root/somefolder/
。
1)创建符号链接
ln -s /under_root/somefolder/ /home/deploy/.BuildServer
您应该先删除 .BuildServer 目录。或者,您可以将.BuildServer
目录移动到新位置:
mv /home/deploy/.BuildServer/ /under_root/somefolder/
现在运行ln
命令(见上文)。注意:访问的用户/under_root/somefolder/
应该有权访问该文件夹。假设用户是deploy
,somefolder
由拥有deploy
,但/under_root
由其他用户拥有。现在有两种可能性:让deploy
成为组的成员,用于/under_root
并给组添加执行位。(chmod g+x /under_root
)。另一种情况是 deploy 不能拥有组关系/under_root
。在这种情况下,请确保任何人都可以进入目录:)chmod o+x /under_root
。必须对“上方”的每个文件夹执行此操作/under_root/somefolder
。
2)绑定挂载
这只能由具有 root 权限的用户完成(询问您的系统管理员)。
mount --bind /under_root/somefolder /home/deploy/.BuildServer
使用这种方法,无需处理 的权限/under_root
。与符号链接相比,另一个优势是即使 ssh chroot 到 ,此方法也能正常工作/home/deploy
。