comment créer un lien symbolique entre mon dossier de départ et un autre lecteur?

15

Plus précisément, je veux avoir le dossier utilisateur pour mon compte personnel sur un autre disque qui a plus d'espace, mais garder mes autres petits comptes sur mon SSD. J'ai pu copier mon dossier utilisateur sur un autre disque, mais maintenant je dois le lier au dossier d'accueil sur mon SSD, je veux qu'il soit accessible à partir d'un démarrage normal, et ne me dites pas que ce que j'ai fait n'était pas le meilleure chose, je veux juste une réponse. Comment puis-je l'obtenir pour créer un lien qui va de / home / nom d'utilisateur vers / extra-home / nom d'utilisateur et qui est reconnu par le système lors du chargement des dossiers utilisateur?

sbergeron
la source

Réponses:

21

N'oubliez pas que vos autorisations devront être les mêmes. En plus du lien symbolique, sur les distributions et les systèmes de fichiers plus récents, en tant que root, vous pouvez également utiliser bind-mount:

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

Ceci est utile pour permettre l'accès "via" le répertoire / home à des sous-répertoires via des démons qui sont autrement configurés pour éviter de parcourir les liens symboliques (apache, ftpd, etc.).

Vous devez vous rappeler (ou lancer le script) pour vous lier au redémarrage, bien sûr.

Joe Atzberger
la source
Je ne savais pas que les liens symboliques pouvaient créer de tels problèmes. Comment ces démons traitent-ils /var/run/?
Paul
1
Les serveurs sont conçus pour restreindre l'accès au système de fichiers local, pour éviter de compromettre le système. Vous pouvez voir cela comme "des choses autorisées aux utilisateurs distants". Ils n'ont pas besoin de se limiter à accéder à / var / run (généralement au démarrage / à l'arrêt) en tant que "choses autorisées pour ce processus". Voir la directive FollowSymLinks d'Apache pour un exemple de comment autoriser le système de fichiers servi à traverser les liens symboliques, si vous le souhaitez.
Joe Atzberger
pouvons-nous également développer / bin et / lib de la même manière (peut être utile dans un petit système de fichiers)?
ransh
Votre système a-t-il besoin /binet /libà l'initialisation (c'est-à-dire avant de pouvoir exécuter la mountcommande)? Si c'est le cas, vous ne pouvez pas utiliser cette stratégie.
Joe Atzberger
2
Ajouter des informations ici, comme je devais les chercher, une fois que cela est fait pour ajouter init dans / etc / fstab, voici le formulaire. Lors de l'utilisation de la méthode décrite par Joe mount --bind --verbose /extra-home/username /home/username, la ligne /etc/fstabserait/extra-home/username /home/username none defaults,bind 0 0
Wilken
9

Selon cette question sur Super User, cela est possible.

Vous pouvez créer un lien symbolique en utilisant:

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

Si cela ne fonctionne pas pour une raison quelconque, vous pouvez simplement supprimer le lien symbolique, déplacer le répertoire en arrière et redémarrer votre ordinateur.

Louis Matthijssen
la source
Si c'est un simple dossier, vous devez commencer par / media / {hardrive_name} / {votre dossier} Je viens de l'essayer sur un serveur Debian et ça marche.
answerSeeker
2

J'essaierais ceci:

Une fois connecté en tant qu'utilisateur différent, dans un shell racine (par exemple sudo -i), copiez le contenu de /home/usernameto /extra-home/usernameet assurez-vous que le nouvel emplacement appartient à username:

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

Déplacez le /home/username/répertoire d' origine vers un endroit sûr:

# mv /home/username /root/

Créez le lien symbolique:

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

Vérifiez qu'il fonctionne comme prévu en ouvrant une autre fenêtre de terminal et en exécutant su:

$ sudo su username

Si tout semble bien, au moins depuis le terminal (le contenu /home/username/apparaît comme prévu), déconnectez-vous et reconnectez-vous (je suppose que vous êtes sur le bureau Ubuntu) et cela devrait fonctionner normalement. Cependant, si ce n'est pas le cas, supprimez simplement le lien symbolique et ramenez le dossier de départ archivé à son emplacement d'origine.

Paul
la source