Comment puis-je créer un nouvel user mais avec un directory personnel déjà existant?

Disons que j'ai un user appelé panos et qu'il a son directory personnel dans /home/panos . Ensuite, je crée un autre user appelé Tom :

 adduser Tom 

Il crée un user Tom qui a son propre directory: /home/Tom

La question est: et si je voudrais créer un nouvel user et lui donner comme dir home le directory d'un autre user. Par exemple, créons l'user Jerry et le transmettons en tant que son directory local à la maison de l'user Panos :

 adduser -d /home/panos Jerry 

mais il y a une erreur disant:

 adduser: warning: the home directory already exists. Not copying any file from skel directory into it. 

Cependant, si vous regardez le file /etc/passwd :

 tail -n 3 /etc/passwd anthony:x:501:501::/home/anthony:/bin/bash panos:x:502:502::/home/panos:/bin/bash Jerry:x:503:503::/home/panos:/bin/bash 

il semble que cela a fonctionné. Mais quand j'ai essayé de me connecter en tant que Jerry:

 [root@LinuxAcademy ~]# su Jerry bash-4.1$ bash: /home/panos/.bashrc: Permission denied bash-4.1$ 

ça m'empêche de me connecter en tant que Jerry et cela change aussi mon prompt (le PS1 ).

Alors, comment puis-je faire cela? C'est possible?

Vous avez créé un directory avec un directory de base qui existe déjà.

adduser: avertissement: le directory de base existe déjà.
Ne pas copyr de file dans le directory skel.

Ce n'est pas une erreur, c'est un avertissement. Habituellement, la raison de ne pas créer un directory personnel est pour un user dont le directory personnel n'est pas censé exister. Ici, c'est le cas, ce qui a de fortes chances d'être une erreur de la part de l'administrateur système (par exemple un mauvais copyr-coller ou un script buggy). Comme vous vouliez vraiment utiliser un directory personnel existant, ignorez cet avertissement.

 [root@LinuxAcademy ~]# su Jerry bash-4.1$ bash: /home/panos/.bashrc: Permission denied bash-4.1$ 

Vous vous êtes connecté en tant que Jerry. Ce bash 4.1 fonctionne comme Jerry. Jerry n'a pas l'autorisation de lire son ~/.bashrc , soit parce que le file .bashrc est lisible uniquement pour les panos (et peut-être pour un groupe auquel Jerry n'appartient pas), soit parce que le directory /home/panos lui-même n'est pas accessible ( x permission) à Jerry. Donc, bash vous indique qu'il ne peut pas lire son file de démarrage et affiche son invite par défaut.

Avoir plusieurs users avec le même directory personnel est très inhabituel (à l'exception des counts système dont le directory personnel n'a pas d'importance). Ce que vous devez faire à propos des permissions dépend de ce que vous essayez d'get par ceci. Vous voulez probablement au less autoriser tous ces users à lire leur directory personnel.

Oui bien sur. Il essaie de lire et d'exécuter /home/panos/.bashrc . Ce file appartient à l'user panos , et est probablement défini sur -rwx------ ou quelque chose comme ça. Alors Jerry essaie de le lire et ne le peut pas. Permission denied , comme il est dit.

Il est possible que Jerry soit connecté. Essayez whoami .

Donc, mettez-les dans le même groupe et faites-le groupe-rx, ou faites-world-rx, ou quelque chose comme ça. Et faites de même pour le directory de base (exécutable, pour un directory, signifie consultable).

 $ mv /home/jerry /home/xxx $ userdel -r jerry $ rm -rf /var/spool/mail/jerry $ useradd jerry $ mv /home/xxx /home/jerry 

jerry home existe déjà, donc vous allez requestr comme

 bash-4.1$ bash 

Pour éviter mv existant home dir nouvel location et créer à nouveau user