Créer un script magique : effet wahou


#1

Bonsoir à tous,

J’ai besoin d’un petit peu d’aide. J’avais vu il y a quelque temps une manière d’invoquer un script autrement qu’en étant dans le dossier ou il est stocké. Du genre commande + nomduscript, mais je ne retrouve plus la procédure.
Le contexte : j’ai créé un dossier ou je commande à mettre des scripts (par exemple un script nommé Update qui joue tout les apt-get utile etc). Et je voulais pouvoir les lancer depuis le terminal sans être dans le dossier lui-même.

J’ai une autre petite question : quand on configure le profil d’un utilisateur, on peut lui ajouter autant d’emails que l’on veut. Existe-t-il une ligne de commande qui permet d’en ajouter un rapidement ? Le contexte par exemple j’ai besoin d’une adresse email pour un service donc je lance un terminal et je fais un truc du genre create service@mondomaine.fr

Merci beaucoup pour vos retours


#2

Salut,

pour “l’effet wahou” :wink: il existe plusieurs solutions.

L’une consiste à mettre ton script dans /usr/local/bin ou /usr/local/sbin, avec les permissions d’execution. Ensuite il sera disponible pour tous les utilisateurs.

Dans un contexte où tu n’es pas administrateur du système, tu peux aussi te créer un dossier dans ton home, par exemple /home/guillermo/bin, mettre ton executable dedans, puis modifier la variable PATH (si tu veux creuser, lis de la doc sur cette variable ;)) pour qu’elle contienne ce dossier :

PATH=$PATH:/home/guillermo/bin

Pour que cela marche même après t’être reloggué, tu peux mettre cette ligne dans ton .bashrc…

Pour les alias, tu peux regarder du côté de l’option --add-aliases (un truc du genre) dans la commande yunohost user update :

yunohost user update --help

#3

Merci beaucoup je vais essayer cela tout de suite :slight_smile:

J’ai trouvé ce que je cherchais merci
yunohost user update NOMUSER --add-mailalias prefixe@domaine.fr

Merci beaucoup


#4

Super merci sa marche, besoin d’une petite aide peut être,
Est ce que dans mon script qui est rédigé de cette manière

#!/bin/bash
apt-get -f install
apt-get -y update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get -y clean

Est-ce qu’il peut y avoir une option qui dis : exécute avec les privilèges root sans posé de question et demandé de mot de passe ?


#5

Est-ce qu’il peut y avoir une option qui dis : exécute avec les privilèges root sans posé de question et demandé de mot de passe ?

Tu peux configurer sudo pour que pour cette commande particulière il ne te demande pas le mot de passe.

par exemple, dans un fichier /etc/sudoers.d/apt-get tu peux écrire:

monuser ALL=(ALL) NOPASSWD: /chemin/vers/le/script

Mieux vaut que le script appartienne à root et ne soit pas modifiable (mais lisible et executable)

$ chown root:root  /chemin/vers/le/script
$ chmod go=rx /chemin/vers/le/script

#6

Merci beaucoup pour cette précision :slight_smile:

Je me permet d’abuser une fois encore sur ce sujet : Est-ce que si je créer un script avec la commande
yunohost user update NOMUSER --add-mailalias prefixe@domaine.fr
que je nommerais Alias.

Est ce qu’il y a moyen que en tapant
bash Alias Test
ou quelque chose approchant, il déroule le script en remplacant NOMUSER et prefixe par test ?

Merci beaucoup par avance


#7

Oui :wink: Mais tu ferais peut-être mieux de chercher des tutoriels sur les internets sur comment créer des scripts bash :stuck_out_tongue:

Les choses que tu donnent en plus de la commande (“Test” dans ton cas) sont appelés arguments, et ils leur valeur est accessible en bash via $1, $2, $3 etc… Donc par exemple, dans ton cas, echo $1 affichera ‘Test’ dans la console.


#8

Merci beaucoup désolé je vais allez creusé avec cette recherche-là dans ce cas.
Encore merci.


#9

Je me permets de poster encore j’ai creuser autour des scripts et avec le tutoriel que vous m’avez donné, mais j’ai une dernière petite amélioration que je ne vois pas comment apporter si elle est réalisable.
J’exécute avec : bash Alias $1
Le script suivant : sudo yunohost user update Toto --add-mailalias $1@mondomaie.fr

Il me demande le mot de passe d’administration, est-ce que je peux incorporer les questions-réponses dans le script ?

Encore merci en tout cas pour l’aide.


#10

Oui, mais il faut etre prudent :wink:

Tu peux rajouter --admin-password tonSuperPassword à la fin de la commande yunohost. Par contre, ça veut dire que ton password sera écrit en clair dans un fichier, donc il faut bien veiller à ce que ton script ne soit pas accessible en lecture pour les autres utilisateurs que root…

D’autre part, (plus subtil), l’execution d’une telle commande, yunohost ... --admin-password tonPassword, se retrouve visible dans des commandes comme ps -ef qui listent les processus en cours d’execution. Cette liste est visible par défaut par tous les utilisateurs. Donc pendant l’execution de cette commande, un utilisateur malveillant (par exemple, connecté en SSH) pourrait voir cette commande et obtenir le password administrateur. Ce n’est pas trop un problème tant que tu n’as pas d’utilisateurs SSH sur ta machine, ou que tu leur fait confiance.


#11

:scream: je crois que taper son super mot de passe à chaque fois est une meilleur solution :slight_smile: merci


#12

Bonsoir,

Apparemment le script

sudo yunohost user update user –add-mailalias $1@ domaine.tld –admin-password MDP

Ne fonctionne plus depuis la dernière mise à jours


#13

Uuuh okay mais là ce serait bien de créer un nouveau topic pour ça car ça n’a pas de rapport avec la discussion initiale de ce topic …


#14

Désolé, je le fais dès que possible alors.