J'ai créé des utilisateurs avec:
$ useradd john
et j’ai oublié de spécifier le paramètre -m
permettant de créer le répertoire de base et de copier les fichiers squelette vers chaque utilisateur. maintenant je veux faire cela, et je ne veux pas recréer tous les utilisateurs (il doit y avoir un moyen plus facile). oui, y a-t-il un moyen de créer les répertoires utilisateur et de copier les fichiers squelettes?
J'ai pensé créer les répertoires, les chowner à l'utilisateur correspondant, copier tous les fichiers squelettes et les chowner à l'utilisateur correspondant. mais s'il y a une telle commande useradd -m
ne crée pas à nouveau l'utilisateur, mais crée les répertoires, ce serait mieux.
Réponses:
Cela peut sembler une idée idiote, mais si les utilisateurs ne font rien, vous pouvez le faire:
cat /etc/passwd | cut -f 1 -d : >/tmp/users.list
Ensuite, éditez /tmp/users.list pour ne contenir que les utilisateurs souhaités. Alors fais:
Cependant, de nombreuses distributions basées sur Redhat vous créeront un nouveau répertoire personnel lors de votre première connexion, à condition que cela soit spécifié dans / etc / passwd où le répertoire devrait se trouver.
Pour tester cela, faites un "su -" et voyez s'il fait "la bonne chose". Si ce n'est pas le cas, le script ci-dessus fonctionnera assez bien, je pense.
la source
for i in $(awk -F: '{print $1 }' /etc/passwd)
Aussi, vous pouvez utiliser
mkhomedir_helper
la source
sudo /sbin/mkhomedir_helper dka
? le/home
répertoire appartient à l'root
utilisateur, et j'imagine donc qu'il faudrait être root pour en créer un sous-répertoire.Vous devrez créer le répertoire des utilisateurs manuellement. Cela nécessite trois étapes:
/etc/passwd
, généralement, il y aura déjà une entrée / home / login.Et enfin, définissez les autorisations appropriées:
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
BTW: je manque toujours l'
-m
option pour useradd aussi. Au moins les systèmes basés sur Debian devraient avoir uneadduser
commande, que je recommande plutôt à useradd. Si vous avez manqué une-m
option, il peut également être utile d’envisager dedeluser
recréer l’utilisateur avec les options appropriées.Edit: Ajouté
-r
pour la copie également des répertoires.la source
public_html
faut au moins lex
paramétrer un peu, je recommanderais par défautchmod 0711
à chaque maisonpublic_html
et répertoires similaires.cp -r /etc/skel/.*
recurse dans / etc / et copie toutes les données à partir d’ici (/etc/skel/.* correspond à / etc / skel / .. je l’attends). La solution de superuser.com/a/61619/22153 semble fonctionner: cp -r / etc / skel / home / user (/ home / user ne doit pas exister avant d'exécuter la commande)*
avec.
(point). Ainsi..
est assorti. Ai-je raison? De nombreux shells désactivent cela par défaut, à cause d'un tel comportement. Quelle coquille utilisez-vous?Ça devrait faire l'affaire je crois
la source
usermod: no changes
. et le répertoire n'est pas créé. ça ne marche pas non plus avec l'-m
option.Vous pouvez utiliser quelque chose comme pam_mkhomedir pour éviter que cela ne pose problème à tous les utilisateurs à l'avenir. pam_mkhomedir est un module PAM qui crée automatiquement le répertoire de base d'un utilisateur lors de la connexion, s'il n'existe pas, et le remplit avec les fichiers de / etc / skel (ou le répertoire skel que vous avez spécifié).
C’est également une approche très évolutive, car elle continuera de résoudre ce problème si vous basculez ultérieurement votre référentiel utilisateur vers un service de répertoire tel que LDAP.
la source
Dans mon cas, le volume personnel était corrompu et j'ai décidé de le reconstruire à partir de zéro, car peu de données sont impliquées, mais je veux conserver les informations de connexion des utilisateurs. J'ai donc recréé manuellement les répertoires personnels à l'aide de ce script:
la source
Si vous éditez
/etc/login.defs
pour contenirdes répertoires de départ seront alors automatiquement créés pour tous les utilisateurs futurs, à moins que vous ne disiez pas au système de le faire.
Une autre option consiste à utiliser PAM pour les connexions et à utiliser le module pam_mkhomedir pour créer automatiquement l’homedir lors de la première connexion.
la source
Mon premier pas après avoir fait
useradd
est desu - <user>
.Crée les répertoires de base, les copies de squelettes, etc. - du moins sur la case CentOS 4, je le fais le plus souvent.
la source
Connectez-vous avec l'utilisateur john et écrivez à partir d'un shell:
C'est ça! N'utilisez pas sudo ou su, vous n'avez pas besoin d'un accès root pour créer des répertoires. À partir d'un compte root, vous pouvez utiliser:
De cette façon, vous exécuterez la commande en tant que john, ce qui peut être utile si vous avez commis l'erreur avec plus d'un utilisateur.
la source
C'est exactement ce que fait la
mkhomedir_helper $USERNAME
commande.la source
Vous pouvez simplement éditer / etc / passwd. Le deuxième au dernier champ est le répertoire de base de l'utilisateur.
la source
ou
et lis
;)
la source