.bashrc pas appliqué

Bonjour,
je séche sur un problème certainement tout simple (une fois que j’aurais la solution …).
J’ai créé un utilisateur, mais son fichier .bashrc n’est pas appliqué.
Le pronpt se résume à

la variable PS1 est vide, et le fichier .bash_history n’est pas créé.
Le fichier .bashrc appartient bien à l’utilisateur.
Existe t il des logs pour bash ?
Je ne sais pas trop dans quelle direction chercher.

D’après le man de bash, /etc/profile est exécuté en premier s’il existe (pour un shell interactif)

Le fichier /etc/profile est simple

[code]# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))

and Bourne compatible shells (bash(1), ksh(1), ash(1), …).

if [ “id -u” -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

if [ “$PS1” ]; then
if [ “$BASH” ] && [ “$BASH” != “/bin/sh” ]; then
# The file bash.bashrc already sets the default PS1.
# PS1=’\h:\w$ ‘
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ “id -u” -eq 0 ]; then
PS1=’# '
else
PS1=’$ '
fi
fi
fi

The default umask is now handled by pam_umask.

See pam_umask(8) and /etc/login.defs.

if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
[/code]

vu que PS1 n’existe pa et que je ne suis pas root, ce fichier devrai me donner PS1=’$’, ce qui est effectivement le cas.

Je précise que je n’ai aucun des fichiers suivants:
~/.bash_profile,
~/.bash_login
et le fichier ~/.profile contient

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Le fichier .bashrc doit donc prendre le relais, ce qui n’est pas le cas.

j’essaie de le lancer en manuel:

[quote]$ . /home/plug/.bashrc
-sh: 16: /home/plug/.bashrc: shopt: not found
-sh: 24: /home/plug/.bashrc: shopt: not found
-sh: 104: /home/plug/.bashrc: shopt: not found
[\e]0;\u@\h: \w\a]\u@\h:\w$
[/quote]

intéressant, je vais regarder ce shopt de plus prés.
Merci pour la piste :slightly_smiling:

[quote=“piratebab”]…
j’essaie de le lancer en manuel:

intéressant, je vais regarder ce shopt de plus prés.
Merci pour la piste :slightly_smiling:[/quote]Il me semble que shopt vienne du ZSH !

# apt-file search shopt libbeecrypt-dev: /usr/include/beecrypt/blowfishopt.h manpages-zh: /usr/share/man/zh_CN/man1/shopt.1.gz manpages-zh: /usr/share/man/zh_TW/man1/shopt.1.gz zsh: /usr/share/man/man1/zshoptions.1.gz

LeDub fidèle au bash !

Je n’utilise pas ZSH, bien que ce soit le 1er shell que j’ai utilisé lors de ma découverte d’unix.
shopt est un classique de bash

Je ne comprends pas pourquoi shopt ne fonctionne pas avec l’utilisateur plug, alors qu’en root tout fonctionne bien (j’ai recopié le .bashrc de root dans /home/plug)

J’ai une piste intéressante: si je tape la commande

dans le terminal, tout rentre dans l’ordre (prompt OK, historique des commandes …)
Il faut que je comprenne pourquoi lorsque je suis sous l’utilisateur plug, bash n’est pas lancé dans le terminal …

echo $SHELL /bin/sh
reste à trouver comment mettre le shell sur bash pour ce user

Je viens de découvrir la commande

qui permet de changer le SHELL par défaut en 1 commande!
GNU/linux c’est vraiment facile :slightly_smiling:

Et un petit grep plug /etc/passwdSachant que le séparateur de champ est un “:” le dernier champ est le shell qui sera utilisé par le compte (1er champ)

LeDub, grepeur et awkeur de passion !

si j’ai bien compris, la commande adduser met sh comme shell par défaut. Il faut lui passer l’option qui va bien pour que l’utilisateur créé soit configuré en bash.

ça dépend de la config dans /etc/adduser.conf

et il me semble que adduser/deluser sont des surcouches spécifiques aux systèmes Debian, pour les programmes système useradd/userdel standards.

comme je n’avais qu’un user à créer, j’ai passé seulement en paramètre la création du compte dans home (–home), je pensais que bash était par défaut (–shell à ajouter la prochaine fois)
A noter dans un coin pour la prochaine fois …