Как я могу символическую ссылку моей домашней папки с другого диска?


15

Точнее говоря, я хочу, чтобы папка пользователя для моей домашней учетной записи была на другом диске, на котором было бы больше места, но мои другие меньшие учетные записи оставались на моем ssd. Я смог скопировать свою папку пользователя на другой диск, но теперь мне нужно связать ее с домашней папкой на моем ssd, я хочу, чтобы она была доступна при обычной загрузке, и, пожалуйста, не говорите мне, что я не Лучше всего, я просто хочу получить ответ. Как получить это, чтобы создать ссылку, которая идет от / home / username к / extra-home / username и распознается системой при загрузке пользовательских папок?

Ответы:


21

Помните, что ваши разрешения должны быть одинаковыми. В дополнение к symlink, в более свежих дистрибутивах и файловых системах в качестве root вы также можете использовать bind-mount:

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

Это полезно для предоставления доступа «через» каталог / home к подкаталогам через демоны, которые в противном случае настроены так, чтобы избежать прохождения по символическим ссылкам (apache, ftpd и т. Д.).

Вы должны помнить (или сценарий инициализации), чтобы связать при перезагрузках, конечно.


Я не знал, что символические ссылки могут создать такие проблемы. Как лечат таких демонов /var/run/?
— Пол

1
Серверы предназначены для ограничения доступа к локальной файловой системе, чтобы избежать компрометации системы. Вы можете думать об этом как о «вещах, разрешенных удаленным пользователям». Они не должны ограничивать себя в доступе к / var / run (обычно при запуске / завершении работы) как "вещи, разрешенные для этого процесса". См. Директиву Apache FollowSymLinks для примера того, как разрешить обслуживаемой файловой системе проходить символические ссылки, если это необходимо.
— Джо Ацбергер

мы можем также расширить / bin и / lib таким же образом (может быть полезно в небольшой файловой системе)?
— 18:25

Нужна ли ваша система /binи /libпри инициализации (т.е. до того, как вы сможете запустить mountкоманду)? Если это так, то вы не можете использовать эту стратегию.
— Джо Ацбергер

2
Добавление информации здесь, как я должен был искать, когда это сделано для добавления init в / etc / fstab, вот форма. При использовании метода , описанного Джо mount --bind --verbose /extra-home/username /home/username, линия в /etc/fstabбудет/extra-home/username /home/username none defaults,bind 0 0
— Уилкен

9

Согласно этому вопросу на Super User это возможно.

Вы можете создать символическую ссылку, используя:

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

Если по какой-то причине это не работает, вы можете просто удалить символическую ссылку, переместить каталог назад и перезагрузить компьютер.


Если это простая папка, вы должны начать с / media / {hardrive_name} / {ваша папка} Я только что попробовал это на сервере Debian, и он работает.
— Ответ Искатель

2

Я бы попробовал это:

Когда вы вошли в систему как другой пользователь, в корневой оболочке (например sudo -i) скопируйте содержимое /home/usernameв /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), и она должна работать нормально. Однако, если это не так, просто удалите символическую ссылку и переместите заархивированную домашнюю папку обратно в исходное местоположение.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.