#!/bin/bash groups $USER >~/temp utilisateurexec=admin for verifutilisateurexec in $utilisateurexec do if grep "$verifutilisateurexec" ~/temp >/dev/null then rm -f ~/temp break else echo -e "Désolé mais vos droits d'administration sont insuffisant" rm -f ~/temp exit 0 fi done #clear echo -e "\v\t\t########################################################" echo -e "\t\t### Configuration des partages samba ###" echo -e "\t\t########################################################" echo -e "\t\t### ###" echo -e "\t\t### -1- Configuration simple ###" echo -e "\t\t### -2- Configuration avancée (Gestion des droits) ###" echo -e "\t\t### -3- Application des changements ###" echo -e "\t\t### -4- Restauration smb.conf ###" echo -e "\t\t### -5- Redemarrage du service samba ###" echo -e "\t\t### -6- Quitter ###" echo -e "\t\t### ###" echo -e "\t\t########################################################" echo -e "\t\t## Odin #################################### V1.1 ######" echo -e "\t\t########################################################\n\n" echo -e "Votre choix : " read reponse case $reponse in 1) clear echo -e "\t\t############################" echo -e "\t\t### Configuration simple ###" echo -e "\t\t############################" if [ -f ~/smb.conf.temp ] then echo -e "Le fichier temporaire existe déjà" echo -e "Voulez vous l'écraser ? [o/n]" while read ecraser do if [[ $ecraser != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "Voulez vous l'écraser ? [o/n]" else break fi done fi if [ $ecraser = n ] then echo -e " " else rm -f ~/smb.conf.temp echo -e "Fichier détruit" fi clear echo -e "\t\t### Quel nom voulez-vous donner a votre partage : " read nompartage echo -e "[$nompartage]" >>~/smb.conf.temp clear echo -e "\t\t### Veuillez indiquer le chemin complet du repertoire : " while read chemin do if [ ! -d $chemin ] then echo -e "ce n'est pas un dossier valide" echo -e "###Veuillez indiquer le chemin complet du repertoire : " else break fi done echo -e "path = $chemin" >>~/smb.conf.temp clear echo -e "\t\t### Voulez vous mettre un commentaire : " read commentaire if [ -z $commentaire ] then echo -e "pas de commentaire" else echo -e "comment = $commentaire" >>~/smb.conf.temp fi clear echo -e "\t\t### Voulez vous activez la lecture seul sur le partage [o/n] : " while read lecture do if [[ $lecture != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "### Voulez vous activez la lecture seul sur le partage [o/n] : " else break fi done if [ $lecture = n ] then echo -e " " else echo -e "read only = yes" >>~/smb.conf.temp fi clear unset verif verif1 verif2 tes tes1 tes2 tes3 tes4 tes5 echo -e "\t\t### Veuillez indiquer les utilisateurs autorisés à accéder à votre partage: " echo -e "Si plusieurs utilisateurs mettre un espace entre chaque valeur" read utilisateur for verifutilisateur in $utilisateur do if grep "$verifutilisateur" /etc/passwd >/dev/null then tes1="$tes1 $verifutilisateur" tes="$tes $verifutilisateur" else echo -e " '$verifutilisateur' n'est pas défini dans le système en tant qu'utilisateur" tes1="$tes1 $verifutilisateur" verif=$? fi done case ${verif:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes ' qui sont défini dans votre système" echo -e "2) '$tes1 ' qui était votre première saisie " read choixutilisateur case $choixutilisateur in 1) echo -e "\t\t### Veuillez indiquer les groupes autorisés à accéder à votre partage : " echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read groupe for verifgroupe in $groupe do if grep "$verifgroupe" /etc/group >/dev/null then tes5="$tes5 @$verifgroupe" tes4="$tes4 @$verifgroupe" else echo -e " '@$verifgroupe' n'est pas defini dans le systeme en tant que groupe" tes5="$tes5 @$verifgroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont defini dans votre systeme" echo -e "2) '$tes5 ' qui etait votre premiere saisie " read choixgroupe case $choixgroupe in 1) echo -e "valid users =$tes $tes4 " >>~/smb.conf.temp ;; 2) echo -e "valid users =$tes $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "valid users =$tes $tes5" >>~/smb.conf.temp ;; esac ;; 2) echo -e "\t\t### Veuillez indiquer les groupes autorisés à accéder à votre partage : " echo -e "Si plusieurs utilisateurs ou groupes mettre un espace entre chaque valeur" read groupe for verifgroupe in $groupe do if grep "$verifgroupe" /etc/group >/dev/null then tes5="$tes5 @$verifgroupe" tes4="$tes4 @$verifgroupe" else echo -e " '@$verifgroupe' n'est pas defini dans le système en tant que groupe" tes5="$tes5 @$verifgroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixgroupe case $choixgroupe in 1) echo -e "valid users =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "valid users =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "valid users =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; esac ;; 1) echo -e "tous vos utilisateurs sont défini sur le système" echo -e "\t\t### Veuillez indiquer les groupes autorisés à accéder à votre partage : " echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read groupe for verifgroupe in $groupe do if grep "$verifgroupe" /etc/group >/dev/null then tes5="$tes5 @$verifgroupe" tes4="$tes4 @$verifgroupe" else echo -e " '@$verifgroupe' n'est pas defini dans le système en tant que groupe" tes5="$tes5 @$verifgroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixgroupe case $choixgroupe in 1) echo -e "valid users =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "valid users =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "valid users =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; esac clear echo -e "\t\t### Voulez vous rendre accessible votre partage a tous le monde ? [o/n]" while read invite do if [[ $invite != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Voulez vous rendre accessible votre partage a tous le monde ? [o/n]" else break fi done if [ $invite = n ] then echo -e "guest ok = no " >>~/smb.conf.temp else echo -e "guest ok = yes" >>~/smb.conf.temp fi clear unset verif verif1 verif2 tes tes1 tes2 tes3 tes4 tes5 echo -e "\t\t### Quels Utilisateurs ont le droits en modification sur votre partage" echo -e "Si plusieurs utilisateurs mettre un espace entre chaque valeur" read writeutilisateur for verifwriteutilisateur in $writeutilisateur do if grep "$verifwriteutilisateur" /etc/passwd >/dev/null then tes1="$tes1 $verifwriteutilisateur" tes="$tes $verifwriteutilisateur" else echo -e " '$verifwriteutilisateur' n'est pas défini dans le système en tant qu'utilisateur" tes1="$tes1 $verifwriteutilisateur" verif=$? fi done case ${verif:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes ' qui sont défini dans votre système" echo -e "2) '$tes1 ' qui était votre première saisie " read choixwriteutilisateur case $choixwriteutilisateur in 1) echo -e "\t\t### Quels groupes ont le droits en modification sur votre partage" echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read writegroupe for verifwritegroupe in $writegroupe do if grep "$verifwritegroupe" /etc/group >/dev/null then tes5="$tes5 @$verifwritegroupe" tes4="$tes4 @$verifwritegroupe" else echo -e " '@$verifwritegroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifwritegroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixwritegroupe case $choixwritegroupe in 1) echo -e "write list =$tes $tes4 " >>~/smb.conf.temp ;; 2) echo -e "write list =$tes $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "write list =$tes $tes5" >>~/smb.conf.temp ;; esac ;; 2) echo -e "\t\t### Quels groupes ont le droits en modification sur votre partage" echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read writegroupe for verifwritegroupe in $writegroupe do if grep "$verifwritegroupe" /etc/group >/dev/null then tes5="$tes5 @$verifwritegroupe" tes4="$tes4 @$verifwritegroupe" else echo -e " '@$verifwritegroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifwritegroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont defini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixwritegroupe case $choixwritegroupe in 1) echo -e "write list =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "write list =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "write list =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos utilisateur sont défini sur le système" echo -e "\t\t### Quels groupes ont le droits en modification sur votre partage" echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read writegroupe for verifwritegroupe in $groupe do if grep "$verifwritegroupe" /etc/group >/dev/null then tes5="$tes5 @$verifwritegroupe" tes4="$tes4 @$verifwritegroupe" else echo -e " '@$verifwritegroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifwritegroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixwritegroupe case $choixwritegroupe in 1) echo -e "write list =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "write list =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "write list =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; esac clear echo -e "\t\t### Votre partage est-il un partage caché ? [o/n]" while read browseable do if [[ $browseable != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "### Votre partage est-il un partage caché ? [o/n] : " else break fi done if [ $browseable = n ] then echo -e "browseable = yes " >>~/smb.conf.temp else echo -e "browseable = no " >>~/smb.conf.temp fi clear echo -e "\t\t### Voulez vous visualiser le fichier ? [o/n]" while read verification do if [[ $verification != ?([on]) ]] then echo -e "Pour appliquer les changements relancé le script et choisir -3-" exit 0 else echo -e "Si vous voulez éditer manuellement le partage " echo -e "le fichier temporaire ce trouve :" ls ~/smb.conf.temp echo -e " " cat ~/smb.conf.temp break fi done exit 0 ;; 2) clear echo -e "\t\t#############################" echo -e "\t\t### Configuration avancée ###" echo -e "\t\t#############################" # cp -f /etc/samba/smb.conf ~/smb.conf.temp if [ -f ~/smb.conf.temp ] then echo -e "Le fichier temporaire existe déjà" echo -e "Voulez vous l'écraser ? [o/n]" while read ecraser do if [[ $ecraser != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "Voulez vous l'écraser ? [o/n]" else break fi done fi if [ $ecraser = n ] then echo -e " " else rm -f ~/smb.conf.temp echo -e "Fichier détruit" fi echo -e "\t\t### Nom du partage : " read nompartage echo -e "[$nompartage]" >>~/smb.conf.temp echo -e "\t\t### Chemin du repertoire : " while read chemin do if [ ! -d $chemin ] then echo -e "ce n'est pas un dossier valide" echo -e "\t\t### Chemin du repertoire : " else break fi done echo -e "path = $chemin" >>~/smb.conf.temp echo -e "\t\t### Voulez vous mettre un commentaire : " read commentaire if [ -z $commentaire ] then echo -e "pas de commentaire" else echo -e "comment = $commentaire" >>~/smb.conf.temp fi echo -e "\t\t### Voulez vous activez la lecture seul sur le partage [o/n] : " while read lecture do if [[ $lecture != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Voulez vous activez la lecture seul sur le partage [o/n] : " else break fi done if [ $lecture = n ] then echo -e " " >> /dev/null else echo -e "read only = yes" >>~/smb.conf.temp fi clear unset verif verif1 verif2 tes tes1 tes2 tes3 tes4 tes5 echo -e "\t\t### Veuillez indiquer les utilisateurs autorisés à accéder à votre partage: " echo -e "Si plusieurs utilisateurs mettre un espace entre chaque valeur" read utilisateur for verifutilisateur in $utilisateur do if grep "$verifutilisateur" /etc/passwd >/dev/null then tes1="$tes1 $verifutilisateur" tes="$tes $verifutilisateur" else echo -e " '$verifutilisateur' n'est pas défini dans le système en tant qu'utilisateur" tes1="$tes1 $verifutilisateur" verif=$? fi done case ${verif:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes ' qui sont défini dans votre système" echo -e "2) '$tes1 ' qui était votre première saisie " read choixutilisateur case $choixutilisateur in 1) echo -e "\t\t### Veuillez indiquer les groupes autorisés à accéder à votre partage : " echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read groupe for verifgroupe in $groupe do if grep "$verifgroupe" /etc/group >/dev/null then tes5="$tes5 @$verifgroupe" tes4="$tes4 @$verifgroupe" else echo -e " '@$verifgroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifgroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixgroupe case $choixgroupe in 1) echo -e "valid users =$tes $tes4 " >>~/smb.conf.temp ;; 2) echo -e "valid users =$tes $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "valid users =$tes $tes5" >>~/smb.conf.temp ;; esac ;; 2) echo -e "\t\t### Veuillez indiquer les groupes autorisés à accéder à votre partage : " echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read groupe for verifgroupe in $groupe do if grep "$verifgroupe" /etc/group >/dev/null then tes5="$tes5 @$verifgroupe" tes4="$tes4 @$verifgroupe" else echo -e " '@$verifgroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifgroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont defini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixgroupe case $choixgroupe in 1) echo -e "valid users =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "valid users =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "valid users =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos utilisateur sont défini sur le système" echo -e "\t\t### Veuillez indiquer les groupes autorisés à accéder à votre partage : " echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read groupe for verifgroupe in $groupe do if grep "$verifgroupe" /etc/group >/dev/null then tes5="$tes5 @$verifgroupe" tes4="$tes4 @$verifgroupe" else echo -e " '@$verifgroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifgroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixgroupe case $choixgroupe in 1) echo -e "valid users =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "valid users =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "valid users =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; esac echo -e "\t\t### Voulez vous rendre accessible votre partage a tous le monde ? [o/n]" while read invite do if [[ $invite != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Voulez vous rendre accessible votre partage a tous le monde ? [o/n]" else break fi done if [ $invite = n ] then echo -e "guest ok = no " >>~/smb.conf.temp else echo -e "guest ok = yes" >>~/smb.conf.temp fi clear unset verif verif1 verif2 tes tes1 tes2 tes3 tes4 tes5 echo -e "\t\t### Quels Utilisateurs ont le droits en modification sur votre partage" echo -e "Si plusieurs utilisateurs mettre un espace entre chaque valeur" read writeutilisateur for verifwriteutilisateur in $writeutilisateur do if grep "$verifwriteutilisateur" /etc/passwd >/dev/null then tes1="$tes1 $verifwriteutilisateur" tes="$tes $verifwriteutilisateur" else echo -e " '$verifwriteutilisateur' n'est pas défini dans le système en tant qu'utilisateur" tes1="$tes1 $verifwriteutilisateur" verif=$? fi done case ${verif:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes ' qui sont défini dans votre système" echo -e "2) '$tes1 ' qui était votre première saisie " read choixwriteutilisateur case $choixwriteutilisateur in 1) echo -e "\t\t### Quels groupes ont le droits en modification sur votre partage" echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read writegroupe for verifwritegroupe in $writegroupe do if grep "$verifwritegroupe" /etc/group >/dev/null then tes5="$tes5 @$verifwritegroupe" tes4="$tes4 @$verifwritegroupe" else echo -e " '@$verifwritegroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifwritegroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixwritegroupe case $choixwritegroupe in 1) echo -e "write list =$tes $tes4 " >>~/smb.conf.temp ;; 2) echo -e "write list =$tes $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "write list =$tes $tes5" >>~/smb.conf.temp ;; esac ;; 2) echo -e "\t\t### Quels groupes ont le droits en modification sur votre partage" echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read writegroupe for verifwritegroupe in $writegroupe do if grep "$verifwritegroupe" /etc/group >/dev/null then tes5="$tes5 @$verifwritegroupe" tes4="$tes4 @$verifwritegroupe" else echo -e " '@$verifwritegroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifwritegroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont defini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixwritegroupe case $choixwritegroupe in 1) echo -e "write list =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "write list =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "write list =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos utilisateur sont défini sur le système" echo -e "\t\t### Quels groupes ont le droits en modification sur votre partage" echo -e "Si plusieurs groupes mettre un espace entre chaque valeur" read writegroupe for verifwritegroupe in $groupe do if grep "$verifwritegroupe" /etc/group >/dev/null then tes5="$tes5 @$verifwritegroupe" tes4="$tes4 @$verifwritegroupe" else echo -e " '@$verifwritegroupe' n'est pas défini dans le système en tant que groupe" tes5="$tes5 @$verifwritegroupe" verif2=$? fi done case ${verif2:-1} in 0) echo -e "Voulez vous garder :" echo -e "1) '$tes4 ' qui sont défini dans votre système" echo -e "2) '$tes5 ' qui était votre première saisie " read choixwritegroupe case $choixwritegroupe in 1) echo -e "write list =$tes1 $tes4 " >>~/smb.conf.temp ;; 2) echo -e "write list =$tes1 $tes5 " >>~/smb.conf.temp ;; *) echo -e "choix incorrecte " ;; esac ;; 1) echo -e "tous vos groupes sont défini sur le système" echo -e "write list =$tes1 $tes5" >>~/smb.conf.temp ;; esac ;; esac echo -e "\t\t### Votre partage est-il un partage caché ? [o/n]" while read browseable do if [[ $browseable != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Votre partage est-il un partage caché ? [o/n] : " else break fi done if [ $browseable = n ] then echo -e "browseable = yes " >>~/smb.conf.temp else echo -e "browseable = no " >>~/smb.conf.temp fi echo -e "\t\t### Activé les droits accordés à un fichier créé dans le partage ? [o/n]" while read createmode do if [[ $createmode != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Activé les droits accordés à un fichier créé dans le partage ? [o/n]" else break fi done if [ $createmode = n ] then echo -e "" else echo -e "################################################" echo -e "### Droit du proprietaire ###" echo -e "################################################" echo -e "### ###" echo -e "### -1- rwx -2- rw- -3- r-x -4- r-- ###" echo -e "### -5- -wx -6- -w- -7- --x -8- --- ###" echo -e "### ###" echo -e "################################################" echo -e "################################################" echo -e "Votre choix : " while read createmodedroitproprio do if [[ $createmodedroitproprio != ?([1-8]) ]] then echo -e "mauvaise saisie" echo -e "Votre choix : " else break fi done case $createmodedroitproprio in 1) cmdp=07 ;; 2) cmdp=06 ;; 3) cmdp=05 ;; 4) cmdp=04 ;; 5) cmdp=03 ;; 6) cmdp=02 ;; 7) cmdp=01 ;; 8) cmdp=00 ;; esac echo -e "################################################" echo -e "### Droit du groupe ###" echo -e "################################################" echo -e "### ###" echo -e "### -1- rwx -2- rw- -3- r-x -4- r-- ###" echo -e "### -5- -wx -6- -w- -7- --x -8- --- ###" echo -e "### ###" echo -e "################################################" echo -e "################################################" echo -e "Votre choix : " while read createmodedroitgroupe do if [[ $createmodedroitgroupe != ?([1-8]) ]] then echo -e "mauvaise saisie" echo -e "Votre choix : " else break fi done case $createmodedroitgroupe in 1) cmdg=7 ;; 2) cmdg=6 ;; 3) cmdg=5 ;; 4) cmdg=4 ;; 5) cmdg=3 ;; 6) cmdg=2 ;; 7) cmdg=1 ;; 8) cmdg=0 ;; esac echo -e "################################################" echo -e "### Droit des autres ###" echo -e "################################################" echo -e "### ###" echo -e "### -1- rwx -2- rw- -3- r-x -4- r-- ###" echo -e "### -5- -wx -6- -w- -7- --x -8- --- ###" echo -e "### ###" echo -e "################################################" echo -e "################################################" echo -e "Votre choix : " while read createmodedroitautre do if [[ $createmodedroitautre != ?([1-8]) ]] then echo -e "mauvaise saisie" echo -e "Votre choix : " else break fi done case $createmodedroitautre in 1) cmda=7 ;; 2) cmda=6 ;; 3) cmda=5 ;; 4) cmda=4 ;; 5) cmda=3 ;; 6) cmda=2 ;; 7) cmda=1 ;; 8) cmda=0 ;; esac echo -e "create mode = $cmdp$cmdg$cmda " >>~/smb.conf.temp fi echo -e "\t\t### Activé droits accordés à un répertoire créé dans le partage ? [o/n]" while read directorymode do if [[ $directorymode != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Activé les droits accordés à un répertoire créé dans le partage ? [o/n]" else break fi done if [ $directorymode = n ] then echo -e "" else echo -e "################################################" echo -e "### Droit du proprietaire ###" echo -e "################################################" echo -e "### ###" echo -e "### -1- rwx -2- rw- -3- r-x -4- r-- ###" echo -e "### -5- -wx -6- -w- -7- --x -8- --- ###" echo -e "### ###" echo -e "################################################" echo -e "################################################" echo -e "Votre choix : " while read irectorymodedroitproprio do if [[ $irectorymodedroitproprio != ?([1-8]) ]] then echo -e "mauvaise saisie" echo -e "Votre choix : " else break fi done case $directorymodedroitproprio in 1) dmdp=07 ;; 2) dmdp=06 ;; 3) dmdp=05 ;; 4) dmdp=04 ;; 5) dmdp=03 ;; 6) dmdp=02 ;; 7) dmdp=01 ;; 8) dmdp=00 ;; esac echo -e "################################################" echo -e "### Droit du groupe ###" echo -e "################################################" echo -e "### ###" echo -e "### -1- rwx -2- rw- -3- r-x -4- r-- ###" echo -e "### -5- -wx -6- -w- -7- --x -8- --- ###" echo -e "### ###" echo -e "################################################" echo -e "################################################" echo -e "Votre choix : " while read directorymodedroitgroupe do if [[ $directorymodedroitgroupe != ?([1-8]) ]] then echo -e "mauvaise saisie" echo -e "Votre choix : " else break fi done case $directorymodedroitgroupe in 1) dmdg=7 ;; 2) dmdg=6 ;; 3) dmdg=5 ;; 4) dmdg=4 ;; 5) dmdg=3 ;; 6) dmdg=2 ;; 7) dmdg=1 ;; 8) dmdg=0 ;; esac echo -e "################################################" echo -e "### Droit des autres ###" echo -e "################################################" echo -e "### ###" echo -e "### -1- rwx -2- rw- -3- r-x -4- r-- ###" echo -e "### -5- -wx -6- -w- -7- --x -8- --- ###" echo -e "### ###" echo -e "################################################" echo -e "################################################" echo -e "Votre choix : " while read directorymodedroitautre do if [[ $directorymodedroitautre != ?([1-8]) ]] then echo -e "mauvaise saisie" echo -e "Votre choix : " else break fi done case $directorymodedroitautre in 1) dmda=7 ;; 2) dmda=6 ;; 3) dmda=5 ;; 4) dmda=4 ;; 5) dmda=3 ;; 6) dmda=2 ;; 7) dmda=1 ;; 8) dmda=0 ;; esac echo -e "directory mode = $cmdp$cmdg$cmda " >>~/smb.conf.temp fi echo -e "\t\t### Voulez vous imposé un groupe propriétaire d'un fichier lors de sa création dans le partage ? [o/n] " while read forcegroupe do if [[ $forcegroupe != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Voulez vous imposé un groupe propriétaire d'un fichier lors de sa création dans le partage ? [o/n] " else break fi done if [ $forcegroupe = n ] then echo -e " " else echo -e "Entrer le nom de groupe avec '@' devant " read nomforcegroupe echo -e "force groupe = $nomforcegroupe " >>~/smb.conf.temp fi echo -e "\t\t### Voulez vous cacher les fichiers dont le nom commence par un point [o/n] " while read hidedotfiles do if [[ $hidedotfiles != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Voulez vous cacher les fichiers dont le nom commence par un point [o/n]" else break fi done if [ $hidedotfiles = n ] then echo -e " " else echo -e "hide dot files = yes " >>~/smb.conf.temp fi echo -e "\t\t### Voulez vous interdire certain poste du réseau de ce connecté au partage ? [o/n] " while read hostsdeny do if [[ $hostsdeny != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Voulez vous interdire certain poste du réseau de ce connecté au partage ? [o/n] " else break fi done if [ $hostsdeny = n ] then echo -e " " else echo -e "Entrez les adresses IP" read addressehostsdeny echo -e "hosts deny = $addressehostsdeny " >>~/smb.conf.temp fi echo -e "\t\t### Voulez vous configurer le nombre de connexions à la ressource ? [o/n] " while read maxconnections do if [[ $hmaxconnections != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "\t\t### Voulez vous configurer le nombre de connexions à la ressource ? [o/n] " else break fi done if [ $maxconnections = n ] then echo -e " " else echo -e "Nombre de connexion ?" read nbmaxconnections echo -e "max connections = $nbmaxconnections " >>~/smb.conf.temp fi echo -e "Voulez vous vérifier le fichier ? [o/n]" while read verification do if [[ $verification != ?([on]) ]] then echo -e "Pour appliquer les changements relancé le script et choisir -3-" exit 0 else echo -e "Si vous voulez editer le partage manuellement" echo -e "le fichier temporaire ce trouve :" ls ~/smb.conf.temp echo -e " " cat ~/smb.conf.temp break fi done exit 0 ;; 3) clear echo -e "\t\t###################################" echo -e "\t\t### Application des changements ###" echo -e "\t\t###################################" echo -e "Voulez vous appliquer les changements ? [o/n] " while read change do if [[ $change != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "Voulez vous appliquer les changements ? [o/n] " else break fi done if [ $change = n ] then echo -e " " else echo -e "Voulez vous VRAIMENT appliquer les changements ? [o/n] " while read change1 do if [[ $change1 != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "Voulez vous VRAIMENT appliquer les changements ? [o/n] " else if [ $change1 = n ] then echo -e " " else sudo cp -f /etc/samba/smb.conf /etc/samba/smb.conf.old sudo cat ~/smb.conf.temp >>/etc/samba/smb.conf exit 0 fi fi done fi ;; 4) clear echo -e "\t\t###################################" echo -e "\t\t### Restauration smb.conf ###" echo -e "\t\t###################################" echo -e "Voulez vous restaurer le smb.conf ? [o/n] " while read restauration do if [[ $restauration != ?([on]) ]] then echo -e "mauvaise saisie" echo -e "Voulez vous appliquer les changements ? [o/n] " else if [ $change = n ] then echo -e " " else sudo rm -f /etc/samba/smb.conf sudo mv /etc/samba/smb.conf.old /etc/samba/smb.conf exit fi fi done ;; 5) sudo service smbd stop sudo service smbd start ;; 6) exit 0 ;; esac