Aide sur création de sous dossier avec droit par script
Aide sur création de sous dossier avec droit par script - Codes et scripts - Linux et OS Alternatifs
MarshPosté le 07-09-2006 à 17:00:31
Bonjour tout le monde,
j'ai besoin d'un peu d'aide sur un script qui créé des utilisateurs avec leur home directory, bla bla bla.... mais j'aurai besoin en plus qu'il me créé des sous répertoires dans le /home/loginXX/ avec des permissions pour une dizaine de user.
/home/user 1/ bla bla1 bla bla2
......
/home/user 9/ bla bla1 bla bla2
/home/user 10/ bla bla1 bla bla2
Chaque utilisateur ne peut voir que son home directory sauf le user 10 qui peut voir en lecteur tout les autres.
Je post le script initial:
Citation :
#!/bin/bash # SCRIPT creation_user.sh # ================ # Création automatique des comptes d'apres le fichier users.txt # appel : ./creation_user.sh [users.txt]
# analyse de la ligne de commande # a t-on passe un parametre ? if [ $# = 1 ] then fichier=$1 else echo "Nom du fichier des comptes Linux a creer [par defaut users.txt]" read fichier if [ -z $fichier ] then fichier="users.txt" echo "Utilisation du fichier $fichier pour genener les comptes" fi fi # le fichier $fichier existe t-il ? si non, sortie du script par exit 1 if [ ! -e $fichier ] then echo "Le fichier $fichier n'existe pas ! Verifiez !" exit 1 fi
# Lecture une par une des lignes de $fichier cat $fichier | while true do read ligne # c'est la fin du fichier --> sortie brutale de la boucle if [ "$ligne" = "" ] then break fi # Traitement de la ligne (attention pas de " " autour de $ligne) # on "eclate" la ligne en affectant les variables de position set -- $ligne login=$1 mdp=$2 nom=$3 groupe=$4 echo $login $passwd $groupe $nom # existe t-il un sous-rep au nom $login dans /home/ ? if [ -d "/home/$login" ] then echo "Le compte $login existe deja ! " # on cree le compte avec $groupe comme groupe primaire else useradd -G $groupe $login echo $mdp | (passwd --stdin $login) smbpasswd -a $login $mdp uid=$(grep -w "^$login" /etc/passwd | cut -d: -f3) echo "creation de $login / uid = $uid / passwd = $mdp" echo "creation de $login / uid = $uid / passwd = $mdp, cree le $(date)" >>creer.txt fi done # fin boucle de creation echo "----------------------------------------------" >>creer.txt
Merci de votre aide.
--------------- - Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Marsh Posté le 07-09-2006 à 17:00:31
Bonjour tout le monde,
j'ai besoin d'un peu d'aide sur un script qui créé des utilisateurs avec leur home directory, bla bla bla....
mais j'aurai besoin en plus qu'il me créé des sous répertoires dans le /home/loginXX/ avec des permissions pour une dizaine de user.
/home/user 1/
bla bla1
bla bla2
......
/home/user 9/
bla bla1
bla bla2
/home/user 10/
bla bla1
bla bla2
Chaque utilisateur ne peut voir que son home directory sauf le user 10 qui peut voir en lecteur tout les autres.
Je post le script initial:
#!/bin/bash
# SCRIPT creation_user.sh
# ================
# Création automatique des comptes d'apres le fichier users.txt
# appel : ./creation_user.sh [users.txt]
# analyse de la ligne de commande
# a t-on passe un parametre ?
if [ $# = 1 ]
then
fichier=$1
else
echo "Nom du fichier des comptes Linux a creer [par defaut users.txt]"
read fichier
if [ -z $fichier ]
then
fichier="users.txt"
echo "Utilisation du fichier $fichier pour genener les comptes"
fi
fi
# le fichier $fichier existe t-il ? si non, sortie du script par exit 1
if [ ! -e $fichier ]
then
echo "Le fichier $fichier n'existe pas ! Verifiez !"
exit 1
fi
# Lecture une par une des lignes de $fichier
cat $fichier | while true
do
read ligne
# c'est la fin du fichier --> sortie brutale de la boucle
if [ "$ligne" = "" ]
then
break
fi
# Traitement de la ligne (attention pas de " " autour de $ligne)
# on "eclate" la ligne en affectant les variables de position
set -- $ligne
login=$1
mdp=$2
nom=$3
groupe=$4
echo $login $passwd $groupe $nom
# existe t-il un sous-rep au nom $login dans /home/ ?
if [ -d "/home/$login" ]
then
echo "Le compte $login existe deja ! "
# on cree le compte avec $groupe comme groupe primaire
else
useradd -G $groupe $login
echo $mdp | (passwd --stdin $login)
smbpasswd -a $login $mdp
uid=$(grep -w "^$login" /etc/passwd | cut -d: -f3)
echo "creation de $login / uid = $uid / passwd = $mdp"
echo "creation de $login / uid = $uid / passwd = $mdp, cree le $(date)" >>creer.txt
fi
done
# fin boucle de creation
echo "----------------------------------------------" >>creer.txt
Merci de votre aide.
---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe