Est-ce que quelqu'un sait s'il est possible d'avoir le dossier home d'un utilisateur, par exemple; /home/user1 sur le disque dur interne et quand je me connecte avec l'utilisateur2 le /home/user2 sur le disque dur externe?
Réponses
Trop de publicités?Le répertoire HOME
de l'utilisateur est défini lors de la connexion de l'utilisateur, depuis le 6ème champ séparé par des deux-points dans l'entrée /etc/passwd
de l'utilisateur. Par exemple, mon fichier /etc/passwd
contient ces utilisateurs:
walt2:x:1001:1000:Walt2 Sullivan,,,:/home/walt2:/bin/bash
walt:x:1000:1000:Walt Sullivan,,,:/home/walt:/bin/bash
Le répertoire HOME
de l'utilisateur walt2
est /home/walt2
, et le répertoire HOME
de l'utilisateur walt
est /home/walt
. Ils peuvent se trouver n'importe où, tant que c'est monté au début de la connexion de l'utilisateur.
Lire man 5 passwd
et man vipw
(utilisez toujours vipw
pour éditer le passwd - il peut utiliser n'importe quel EDITEUR
, pas seulement vi
).
CHAQUE utilisateur a un fichier ~.config/users-dirs.dirs
dans leur dossier personnel où vous pouvez définir quel est votre dossier personnel en modifiant le fichier (prenez note des commentaires dans le fichier). Vous pouvez également chacun avoir votre propre paramètre "locale":
rinzwind@schijfwereld:~$ more .config/user-dirs.dirs
# Ce fichier est écrit par xdg-user-dirs-update
# Si vous voulez modifier ou ajouter des répertoires, il suffit de modifier la ligne qui vous
# intéresse. Tous les changements locaux seront conservés lors de la prochaine exécution
# Le format est XDG_xxx_DIR="$HOME/yyy", où yyy est un chemin relatif au répertoire d'accueil échappé pour le shell,
# ou XDG_xxx_DIR="/yyy", où /yyy est un chemin absolu. Aucun autre format n'est supporté.
#
XDG_DESKTOP_DIR="/discworld/Desktop"
XDG_DOWNLOAD_DIR="/discworld/Downloads"
XDG_TEMPLATES_DIR="/discworld/Templates"
XDG_PUBLICSHARE_DIR="/discworld/Public"
XDG_DOCUMENTS_DIR="/discworld/Documents"
XDG_MUSIC_DIR="/discworld/Music"
XDG_PICTURES_DIR="/discworld/Pictures"
XDG_VIDEOS_DIR="/discworld/Videos"
et
rinzwind@schijfwereld:~$ more .config/user-dirs.locale
en_US
Il s'agit de l'original qui utilise $HOME (c'est-à-dire /home/$USER/) :
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_VIDEOS_DIR="$HOME/Videos"
Il existe également une méthode en ligne de commande:
xdg-user-dirs-update --set DOWNLOAD "répertoire"
où le répertoire doit correspondre aux commentaires dans le premier bloc de code de cette réponse.
Faites-le de cette manière et vous pouvez même utiliser NTFS sur l'emplacement externe. Vous auriez toujours un répertoire /home/$USER/ mais tous les logiciels utiliseraient votre emplacement externe. "home" est toujours /home/$USER/ car tous les paramètres sont toujours là.
Merci pour les réponses rapides.
Après y avoir réfléchi un moment, je pense que la solution de Rinzwind est la plus propre jusqu'à présent.
J'ai trouvé un moyen désordonné de mettre tout le profil de l'utilisateur 2 sur un disque dur externe et ça fonctionne bien, mais ça perturbe Firejail sur quelques programmes et je parie qu'il y aura quelques problèmes à l'avenir. Sans le disque branché, le démarrage est normal, la connexion sur l'utilisateur 1 fonctionne bien, la connexion sur l'utilisateur 2 sera ignorée et retournera à l'écran de connexion une fois le disque branché.
Si quelqu'un est intéressé à bricoler :
- J'ai créé un répertoire /mnt/exthome
- J'ai monté le disque dur externe formaté en ext4 et
- J'ai ajouté le nouvel utilisateur 2 avec le répertoire personnel /mnt/exthome/user2.
- et j'ai modifié le fichier /etc/fsab avec le drapeau d'option
nofail
mkdir /mnt/exthome mount /dev/sdb1 /mnt/exthome adduser user --home /mnt/exthome/user2
J'ai obtenu l'UUID du disque externe avec blkid
et ajouté la ligne dans /etc/fstab
UUID=************** /mnt/xhome/ ext4 defaults,nofail 0 2