J’ai un script bash qui me permet de créer des utilisateurs. Dans le script je voudrais pouvoir changer le propriétaire/chemin du home de l’utilisateur.
Exemple l’utilisateur toto à son home ici : /home/users/toto = chown toto:toto
Je veux lui affecter un “nouveau” home qui sera /home/users/toto/change/new_home si je fais chown toto:toto /home/users/toto/change/new_home “new_home” = toto:toto MAIS PARCONTRE “change” lui reste root:root et je voudrais que le dossier soit en toto:toto
Comment faire pour chown tous les répertoires parents ?
@ricardo
Oui le chown -R ne fonctionne que sur le dernier répertoire et non pas sur son parent.
@Watael
Parceque dans ce cas de figure, il faut que le dossier “racine” /home/users/toto soit toujours utilisable par l’utilisateur.
Le dossier “change/new_home” est son nouveau point de chute lors du login, mais il peut redescendre dans “change” ou le home racine.
En revanche, il ne peut pas écrire dans “/change/” puisque les droits sont sur root:root (j’utilise mkdir -p /home/users/toto/change/new_home)
Je ne comprends pas. Tu veux que :
[ul]
[li]/home/users/toto/change/new_home appartienne à toto[/li]
[li]/home/users/toto/change appartienne à root (impossibilité d’écrire de dans pour toto[/li]
[li]/home/users/toto/ appartienne à toto[/li][/ul]
?
Non je veux que /home/users/toto/change appartienne à toto et non pas à root.
•/home/users/toto/change appartient à root parceque le script de création des répertoires et lancé via root, donc l’utilisateur par défaut et root et je voudrais que se soit toto
concernant su toto -l -c “whoami” je pense avoir compris !!!
L’utilisateur toto a pas de shell (/bin/false par défaut) si je passe en /bin/bash cela fonctionne !
Donc je vais devoir jouer avec usermod sur l’utilisateur pour modifier /bin/false en /bin/bash pour la création du Home et ensuite remettre le /bin/false
Mon script permet de créer dynamiquement des comptes FTP, donc je préfère utiliser /bin/false pour sécuriser l’ensemble
Oui mais cela veux dire que le chown va traiter tout les fichiers/dossiers présent sur la machine… Cela donne un résultat plus long lors de l’éxecution du script.
En adaptant bien entendu le maxdepth à tes besoins… (remplace « chown toto:toto » par « echo » pour voir quels dossiers seront pris en compte).
Ça modifiera sûrement plus de dossiers qu’absolument nécessaire, mais rien de bien méchant comparé à un chown -R.
Edit :
Oui mais cela veux dire que le chown va traiter tout les fichiers/dossiers présent sur la machine… Cela donne un résultat plus long lors de l’éxecution du script. [/quote]
Non, ça ne modifiera que les fichiers / dossiers directement présents dans le répertoire, pas dans les sous-répertoires (et accessoirement, par défaut ça ignorera les fichiers/dossiers cachés). Pour traiter l’ensemble des fichiers du dossier et de ses sous dossiers, il faut utiliser l’options -R (recursive) de chown.