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
pour “l’effet wahou” 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 :
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 ?
Oui Mais tu ferais peut-être mieux de chercher des tutoriels sur les internets sur comment créer des scripts bash
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.
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 ?
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.