web-dev-qa-db-fra.com

Répertoire de base sur le lecteur externe

J'ai deux ordinateurs (K) Ubuntu dans deux maisons différentes. Je veux qu'ils partagent le répertoire utilisateur, cependant.

L'optimum serait d'avoir un profil d'utilisateur local sur mon disque dur et un autre sur mon disque externe. Synchroniser les fichiers via le cloud ou quelque chose de complètement différent serait également acceptable si cela est possible mais pas préférable.

J'ai essayé de créer un utilisateur avec KUser dont le répertoire personnel se trouve sur le lecteur externe, mais je n'ai pas pu me connecter. L'utilisation de usermod -d ne fonctionne pas non plus. La méthode mentionnée par David Förster ne me permettait pas de me connecter à l'aide du gestionnaire de bureau.

Merci d'avance

3
gorex

Comme je l'ai dit dans les commentaires, vous devez

  1. déplacez les deux répertoires de départ sur le lecteur externe (voir aussi l'étape 3) et fusionnez-les à votre convenance (sens: choisissez le fichier à conserver s'il en existe un dans les deux répertoires de départ d'origine),

  2. configurez les deux systèmes pour monter le lecteur externe au démarrage (utilisez absolument l'étiquette du système de fichiers ou l'UUID ici!), et

  3. assurez-vous que les identifiants des utilisateurs des deux systèmes sont identiques, sinon les choses deviennent beaucoup plus compliquées. Vous pouvez trouver l'ID d'un utilisateur à l'aide de la commande id -u (utilisateur actuel) ou getent passwd <USERNAME> | cut -d: -f3 (tout utilisateur) ou stat -c %u <PATH> (propriétaire d'un fichier ou d'un répertoire).

    Si les ID diffèrent et que vous administrez au moins l'un des systèmes, vous pouvez modifier l'ID d'un ou des deux utilisateurs avec:

    Sudo usermod --uid <NEW_UID> <USERNAME>
    

    Incidemment usermod vous permet de modifier également le répertoire de base d'un utilisateur en une seule commande si vous ajoutez l'option --home <NEW_HOMEDIR>. Si vous ajoutez également --move-home, les fichiers du répertoire actuel seront déplacés vers le nouveau répertoire de base.

    Si vous voulez être absolument certain que la propriété du fichier est correcte, vous pouvez exécuter (sur une machine puisque le répertoire est partagé):

    Sudo chown -R <USERNAME_OR_ID> <NEW_HOME>
    
1
David Foerster

Désolé, je ne suis pas d'accord avec la méthode que vous souhaitez utiliser et la réponse proposée est beaucoup trop difficile pour quelque chose d'aussi simple que cela.

Vous ne devez pas placer/home/sur un disque externe. Vous ne placez que les répertoires utilisateur dans/home/$ USER/sur un disque externe. Le système vous permet de placer vos répertoires utilisateur ailleurs avec le fichier ~.config/users-dirs.dirs. Parfait pour ce type d'installation. Pas besoin de jouer avec les identifiants, les UUID sont tout autre chose.

Une raison simple pour laquelle vous ne mettez pas/home/sur un disque externe: il y aura un problème dans le futur où le disque externe ne monte pas et vous ne pourrez pas démarrer. Il est donc plus difficile de résoudre vos problèmes, car vous devrez le résoudre à partir d’une session en direct ou d’un sauvetage de grub.

Gardez/home/à côté de votre /. Lorsque le système ne trouve pas le disque externe, il démarre dans un bureau vide (vierge) où/home/$ USER/est utilisé comme répertoire de base. Mais tout fonctionne toujours et vous pouvez utiliser la session de bureau pour naviguer sur le Web/AU au problème que vous rencontrez.

Et tout ce que vous avez à faire est d’ajouter les deux utilisateurs au même groupe et chown le disque externe à ce groupe.

Notez aussi que le disque externe DOIT être ext si vous voulez y mettre votre/home /. Vous ne pouvez pas utiliser NTFS. Lorsque vous utilisez la méthode décrite ci-dessus, vous pouvez utiliser NTFS (les répertoires de/home/$ USER/ne nécessitent pas d'autorisations de fichier que/home/doit obligatoirement remplir pour fonctionner).

1
Rinzwind