如何将我的主文件夹与另一个驱动器符号链接?


11

更具体地说,我想为我的家庭帐户的用户文件夹分配另一个具有更多空间的磁盘,但将其他较小的帐户保留在ssd上。我能够将用户文件夹复制到另一个磁盘,但是现在我需要将其链接到我的ssd上的主文件夹,我希望它可以通过正常启动进行访问,请不要告诉我我所做的不是最好的事情是,我只想一个答案。如何获取它以创建从/ home / username到/ extra-home / username的链接,并在加载用户文件夹时被系统识别?

Answers:


17

请记住,您的权限必须相同。除了symlink以外,在较新的发行版和文件系统上,作为根用户,您还可以使用bind-mount:

mkdir /home/username mount --bind --verbose /extra-home/username /home/username

这对于允许通过后台驻留程序“ /”通过/ home目录访问子目录很有用,该后台驻留程序已配置为避免通过符号链接(apache,ftpd等)进行路径访问。

当然,您必须记住(或初始化脚本)在重新启动时进行绑定。


我不知道符号链接可能会造成此类问题。这样的守护程序如何处理/var/run/
保罗

1
这些服务器旨在限制对本地文件系统的访问,以避免损害系统。您可以将其视为“允许远程用户使用的内容”。他们不需要限制自己访问“ / var / run”(通常在启动/关闭时)作为“允许该进程执行的操作”。请参阅Apache的FollowSymLinks指令,以获取有关如何根据需要允许所服务的文件系统遍历符号链接的示例。
Joe Atzberger 2014年

我们还能以相同的方式扩展/ bin和/ lib(在小型文件系统中很有用)吗?
ransh

您的系统是否需要/bin/lib在初始化(即之前可以运行mount命令)?如果是这样,则您不能采用此策略。
Joe Atzberger '18

1
在这里添加信息,就像我必须搜索它一样,一旦完成在/ etc / fstab中添加init的操作,就形成了表单。使用Joe描述的方法时mount --bind --verbose /extra-home/username /home/username,输入的行/etc/fstab/extra-home/username /home/username none defaults,bind 0 0
Wilken '18

9

根据超级用户这个问题,这是可能的。

您可以使用以下方式创建符号链接:

ln -s /extra-home/username /home/username

如果由于某种原因它不起作用,您可以删除符号链接,将目录移回并重新启动计算机。


如果它是一个简单的文件夹,则必须以/ media / {hardrive_name} / {your folder}开头,我刚刚在debian服务器上尝试过它,并且可以正常工作。
answer17年

2

我会尝试这样的:

以其他用户身份登录后,请在root用户外壳程序(例如sudo -i)中复制/home/usernameto 的内容,/extra-home/username并确保新位置归以下所有者所有username

# cp -p /home/username /extra-home/
# chown username:username /extra-home/username

将原始/home/username/目录移动到安全的地方:

# mv /home/username /root/

创建符号链接:

# ln -s /extra-home/username /home/username

通过打开另一个终端窗口并运行来验证其是否按预期工作su

$ sudo su username

如果一切正常,至少从终端上看(内容/home/username/按预期显示),然后注销并重新登录(我假设您使用的是Ubuntu桌面),它应该可以正常工作。但是,如果不是,则只需删除符号链接,然后将存档的主文件夹移回其原始位置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.