# Paquet .deb et modification des alias

**URL:** <https://www.debian-fr.org/t/paquet-deb-et-modification-des-alias/74820>\
**Category:** Programmation\
**Created:** [Octobre 20, 2017, 12:36 UTC](https://www.debian-fr.org/t/paquet-deb-et-modification-des-alias/74820 "2017-10-20T12:36:38Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Octobre 20, 2017, 12:36 UTC](https://www.debian-fr.org/t/paquet-deb-et-modification-des-alias/74820/1 "2017-10-20T12:36:38Z")

</div>

Bonjour,  
j’essaye d’apprendre à créer des paquets .deb

je commence à comprendre le fonctionnement général  
pour mes besoins, j’ai besoin que mon paquet rajoute un alias dans le bashrc de tous les utilisateurs existants mais aussi à ceux qui seront créées

===  
Pour les nouveaux, je pense qu’il faut modifier le " /etc/skell.d/.bashrc " (je serai le faire via DEBIAN/postinstall  
Mais je me demande si c’est très propre ?

===  
Par contre pour les existants… J’ai envisagé un tableau bash qui récupère les comptes dans home et rajoute la ligne dans chaque… mais je me demande s’il n’y a pas plus simple…

==============

Le but, customiser un programme existant.  
Soit pgExistant livré par débian  
J’ai collé un alias style alias monScriptPerso=pgExistant  
(monScriptPerso, ne fait que tester si un répertoire de configuration perso existe, le gère et lance ensuite le pgExistant)  
Mais pour que ça marche , il faut que cet alias soit soit dans le .bashrc de tous les utilisateurs (anciens et à venir)

=====

En espérant avoir qq pistes d’aide.

Merci

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Octobre 20, 2017, 2:29 UTC](https://www.debian-fr.org/t/paquet-deb-et-modification-des-alias/74820/2 "2017-10-20T14:29:35Z")

</div>

Bonjour **crustyourmind**

> [@crustyourmind](#):
>
> …un alias dans le bashrc…

Tu devrais plutôt créer un fichier **/etc/skel/.bash\_aliases** pour les futurs utilisateurs,  
et un fichier **~/.bash\_aliases** pour les utilisateurs déjà existants,  
car ce fichier sera «&nbsp;sourcé&nbsp;» par les lignes de commande suivantes  
qui sont déjà présentes dans le fichier **~/.bashrc**

```
…
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [-f ~/.bash_aliases]; then
    . ~/.bash_aliases
fi
…

```

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Octobre 20, 2017, 2:44 UTC](https://www.debian-fr.org/t/paquet-deb-et-modification-des-alias/74820/3 "2017-10-20T14:44:52Z")

</div>

Par contre il faut faire attention, selon la distrib ces lignes peuvent éventuellement être commentées par défaut dans le .bashrc.

Bon là je n’ai que Cygwin sous la main, ça vaut ce que ça vaut, mais j’ai:

```
# Aliases
#
# Some people use a different file for aliases
# if [-f "${HOME}/.bash_aliases"]; then
# source "${HOME}/.bash_aliases"
# fi

```

Bon je ne comprends pas bien l’intérêt de les commenter par défaut (si on n’utilise pas de fichier .bash\_aliases alors normalement ce fichier n’existe pas), mais on ne sait jamais.

---

<div class="post-metadata">

**Author:** ![crustyourmind](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crustyourmind/32/2955_2.png) [@crustyourmind](https://www.debian-fr.org/u/crustyourmind)\
**Post date:** [Octobre 20, 2017, 3:22 UTC](https://www.debian-fr.org/t/paquet-deb-et-modification-des-alias/74820/4 "2017-10-20T15:22:25Z")

</div>

Merci pour vos réponses !

Je vais utiliser cette voie

Par contre pour les utilisateurs existants, il faut je récupère leur compte (grep bash /etc/passwd | cut -f1 -d: ), je présume et copie le .bash\_aliases à chacun  
Le hic c’est que ce sera fait avec les droits root. Donc il faut ensuite que je récupére leur id et associe les bons droits, c’est bien cela ?

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Octobre 20, 2017, 6:15 UTC](https://www.debian-fr.org/t/paquet-deb-et-modification-des-alias/74820/5 "2017-10-20T18:15:19Z")

</div>

Bonsoir

Avec ça, le fichier **/etc/skel/.bash\_aliases** sera copié  
dans chaque répertoire personnel dans lequel un fichier **.bashrc** sera déjà présent.

Une fois la copie du fichier **.bash\_aliases** créée,  
les propriétés **propriétaire** et **groupe** seront adaptées en fonction du compte utilisateur.

```
#! /bin/sh

# Pour chaque répertoire existant dans le répertoire /home
# Teste la présence d'un fichier .bashrc
# si un fichier .bashrc est présent
# - copie /etc/skel/.bash_aliases dans ce répertoire
# - change le propriétaire et groupe du fichier copié
# en fonction du propriétaire et groupe du répertoire.

repSkel="/etc/skel/"
fichAliases=".bash_aliases"

tstBashrc() {
    if [-f "${1}/.bashrc"]; then
        cp "${repSkel}${fichAliases}" "${1}"
        chown $(stat --format='%u:%g' "${1}") "${1}/${fichAliases}"
    fi
}

find /home -maxdepth 1 -type d | \
while read myDir; do
    tstBashrc "${myDir}"
done

```

* * *

Le fichier source **/etc/skel/.bash\_aliases** devrait avoir les droits **644** ( **rw- r-- r–** )

donc, si besoin : **chmod 644 /etc/skel/.bash\_aliases**

* * *

Mais bon, si l’utilisateur a déjà un fichier **.bash\_aliases** , ça va écraser le fichier existant.

Si tu veux imposer cet alias à tous les utilisateurs de la machine,  
tu pourrait le mettre dans le fichier **/etc/bash.bashrc**
