Script bash ajout utilisateur samba
tourdball
Messages postés
152
Date d'inscription
Statut
Membre
Dernière intervention
-
jivef Messages postés 927 Date d'inscription Statut Membre Dernière intervention -
jivef Messages postés 927 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
découvrant les joies de l'administration, je me dois aussi de découvrir les joies des automatisation si je ne veux pas devenir fou que que mes doigt restent collés aux clavier 24/24 sur... Je dois don apprendre à écrire des script bash.
Le premier que je souhaiterai faire est la création de la création d'un nouveqau utilisateur pour un partage samba avec security=user. Voici ma question :
Comment inclure dans mon script :
- ouvrir le fichier /etc/samba/smb.conf avec vi
- positionner le curseur à la fin du fichier
- aller à la ligne et insérer une ligne
- insérer les lignes suivantes : #ou $USR a été défini précédement
[doc_$USR]
path = /home/$USR/documenti_$USR
valid users = $USR
public = no
writable = yes
create mask = 0700
browseable = no
- enfin sauvegarder et quitter
Voilà, je connais bien évidement les commandes : vi, i pour insérer, :wq, etc... mais comment faire les inclure dans un script bash?
Merci d'avance pour votre aide;-)
A+
découvrant les joies de l'administration, je me dois aussi de découvrir les joies des automatisation si je ne veux pas devenir fou que que mes doigt restent collés aux clavier 24/24 sur... Je dois don apprendre à écrire des script bash.
Le premier que je souhaiterai faire est la création de la création d'un nouveqau utilisateur pour un partage samba avec security=user. Voici ma question :
Comment inclure dans mon script :
- ouvrir le fichier /etc/samba/smb.conf avec vi
- positionner le curseur à la fin du fichier
- aller à la ligne et insérer une ligne
- insérer les lignes suivantes : #ou $USR a été défini précédement
[doc_$USR]
path = /home/$USR/documenti_$USR
valid users = $USR
public = no
writable = yes
create mask = 0700
browseable = no
- enfin sauvegarder et quitter
Voilà, je connais bien évidement les commandes : vi, i pour insérer, :wq, etc... mais comment faire les inclure dans un script bash?
Merci d'avance pour votre aide;-)
A+
A voir également:
- Script bash ajout utilisateur samba
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Utilisateur facebook - Forum Facebook
- Ghost script - Télécharger - Polices de caractères
- Ajout rapide snap - Forum Snapchat
4 réponses
Salut,
Tu peux faire comme çà :
On peut le faire avec vi aussi, mais bash tout seul et les redirections sont suffisantes.
Ce procédé "<< HERE" s'appelle un "Here Document". Il permet d'éviter d'avoir à créer un document séparé au script quand it s'agit d'en rediriger le contenu vers le stdin d'une commande. On peut utiliser un autre mot que HERE, bien sûr. Le document est en quelques sortes "simulé" à l'intérieur du script.
Ses différentes variantes sont décrites dans le ABS Guide :
http://www.aero.jussieu.fr/services/INFO/documentation/mendel/HTML/here-docs.html
Le ">>" sert à modifier le fichier texte en ajoutant le contenu redirigé à la fin du fichier texte (append).
Un simple ">" par contre écraserait le fichier texte avec le nouveau contenu.
Travaille sur une copie de ton smb.conf... un accident est vite arrivé :)
Dal
Tu peux faire comme çà :
cat << HERE >> /etc/samba/smb.conf [doc_$USR] path = /home/$USR/documenti_$USR valid users = $USR public = no writable = yes create mask = 0700 browseable = no HERE
On peut le faire avec vi aussi, mais bash tout seul et les redirections sont suffisantes.
Ce procédé "<< HERE" s'appelle un "Here Document". Il permet d'éviter d'avoir à créer un document séparé au script quand it s'agit d'en rediriger le contenu vers le stdin d'une commande. On peut utiliser un autre mot que HERE, bien sûr. Le document est en quelques sortes "simulé" à l'intérieur du script.
Ses différentes variantes sont décrites dans le ABS Guide :
http://www.aero.jussieu.fr/services/INFO/documentation/mendel/HTML/here-docs.html
Le ">>" sert à modifier le fichier texte en ajoutant le contenu redirigé à la fin du fichier texte (append).
Un simple ">" par contre écraserait le fichier texte avec le nouveau contenu.
Travaille sur une copie de ton smb.conf... un accident est vite arrivé :)
Dal
Salut Dal et merci pour ton aide, çà marche Nickel ;-)
Un peu plus compliqué maintenant...
Je suis en train de faire un petit script pour éliminer un user, et à un moment donné, je voudrai tester s'il existe une ligne [doc_$USR] dans /etc/samba/smb.conf et le cas échéant l'éliminer ainsi que les 6 lignes qui suivent... tu vois ce que je veux dire?
C'est possible?
A+ :-)
Un peu plus compliqué maintenant...
Je suis en train de faire un petit script pour éliminer un user, et à un moment donné, je voudrai tester s'il existe une ligne [doc_$USR] dans /etc/samba/smb.conf et le cas échéant l'éliminer ainsi que les 6 lignes qui suivent... tu vois ce que je veux dire?
C'est possible?
A+ :-)
Salut jipicy,
Je vois que ce fil de discussion s'étale dans le temps alors j'en profite :)
La solution anonyme répond à la question de tourdball, en retournant 1 si la chaine est présente (vrai) et 0 sinon (faux). Il faut mettre tout ça dans un test conditionnel évidemment.
Reste à les supprimer...
grep -A6 ne servant qu'à afficher et non pas à déterminer la présence de la chaine.
-= Bobinours =-
Je vois que ce fil de discussion s'étale dans le temps alors j'en profite :)
La solution anonyme répond à la question de tourdball, en retournant 1 si la chaine est présente (vrai) et 0 sinon (faux). Il faut mettre tout ça dans un test conditionnel évidemment.
Reste à les supprimer...
grep -A6 ne servant qu'à afficher et non pas à déterminer la présence de la chaine.
-= Bobinours =-
Salut Bobinours,
La solution anonyme répond à la question de tourdball,
Ben non, sa solution ne renvoie que le nombre d'occurrences correspondant à "[doc_$USR]".
grep -A6 ne servant qu'à afficher et non pas à déterminer la présence de la chaine.
Non plus ;-\ En fait "grep A6" renverrait non seulement la ligne recherchée (si elle était présente toutefois), mais aussi les six lignes suivantes ;-)
Le seul truc que je t'accorde c'est qu'effectivement, ni la réponse d'anonymous, ni celle de jipicy ne répondent vraiment à la question posée.
Une réponse possible aurait été du genre :
;-))
La solution anonyme répond à la question de tourdball,
Ben non, sa solution ne renvoie que le nombre d'occurrences correspondant à "[doc_$USR]".
grep -A6 ne servant qu'à afficher et non pas à déterminer la présence de la chaine.
Non plus ;-\ En fait "grep A6" renverrait non seulement la ligne recherchée (si elle était présente toutefois), mais aussi les six lignes suivantes ;-)
Le seul truc que je t'accorde c'est qu'effectivement, ni la réponse d'anonymous, ni celle de jipicy ne répondent vraiment à la question posée.
Une réponse possible aurait été du genre :
sed -i.bak "/\[doc_$USR\]/,+6d" /etc/samba/smb.conf
;-))
Bonjour,
En fait, ça fait même 4 ans...
Balaise !
Mais si on veut tout faire par script, gedit ne sert pas à grand chose, à part peut-être à créer des scripts...
Ceci étant dit, je vais paraphraser un vieux dicton "un bon scripteur doit savoir scripter sans gedit ..."
Jonas,
vim addict
En fait, ça fait même 4 ans...
Balaise !
Mais si on veut tout faire par script, gedit ne sert pas à grand chose, à part peut-être à créer des scripts...
Ceci étant dit, je vais paraphraser un vieux dicton "un bon scripteur doit savoir scripter sans gedit ..."
Jonas,
vim addict
je vous conseil d'utiliser gedit à la place de vi c'est plus facile.
tu ouvre le terminale et tu tapes la commande suivante:
sudo gedit chemin/de/votre/fichier
après le fichier s'ouvre et vous pouvez faire ce que vous voulez ;)
tu ouvre le terminale et tu tapes la commande suivante:
sudo gedit chemin/de/votre/fichier
après le fichier s'ouvre et vous pouvez faire ce que vous voulez ;)
Et puis il est important de pouvoir se débrouiller dans un terminal.
Comment fera-t-il le jour où il sera dans ssh sans export display...
S'il ne sait utiliser que gedit, kwrite ou autre joyeuseté, il te remerciera de ta remarque sur la facilité de tel éditeur et la complexité de tel autre...
Quand je lis ce type de remarque je suis encore plus définitivement "vim addict."
Note bien que "vim" est un peu plus évolué que "vi"
D'ailleurs, dans quelques cas, la commande vi est devenu un alias de vim.
Comment fera-t-il le jour où il sera dans ssh sans export display...
S'il ne sait utiliser que gedit, kwrite ou autre joyeuseté, il te remerciera de ta remarque sur la facilité de tel éditeur et la complexité de tel autre...
Quand je lis ce type de remarque je suis encore plus définitivement "vim addict."
Note bien que "vim" est un peu plus évolué que "vi"
D'ailleurs, dans quelques cas, la commande vi est devenu un alias de vim.