J'ai besoin que mon utilisateur telnet et ssh utilise Byobu comme shell de connexion. Je voudrais éviter d'utiliser .login/.profile/.bashrc et les goûts pour générer Byobu. J'aimerais avoir Byobu comme le shell défini dans/etc/passwd. J'ai déjà fait quelques tests, mais j'ai été incapable de le faire fonctionner correctement. Une idée?
Byobu n'est pas une coquille en soi. C'est un programme que vous exécutez dans votre shell. Les utilitaires, byobu-enable et byobu-disable , mettez une ligne à la fin de votre ~/.profile
qui se lance byob (si nécessaire) lorsque vous créez un nouvel identifiant. Le script d’encapsidation effectue une vérification de cohérence et empêche la récursivité.
Maintenant, cela dit, je vais vous dire comment vous pouvez faire ce que vous demandez, mais je le conseille vivement . Vous pourriez bien vous retrouver dans une récursion méchante ou une boucle infinie. Il faut se méfier!
Mettez ceci dans votre ~/.screenrc
:
source /usr/share/byobu/profiles/byoburc
ajoutez ceci à/etc/profile
echo $- | grep -qs i && byobu-launcher && exit 0
Avant de configurer le shell, vous devez probablement vous assurer que le programme que vous souhaitez fonctionnera comme un shell. Les shells "valides" sont préconfigurés dans/etc/shells; si ce que vous voulez utiliser en tant que shell ne figure pas dans cette liste, je voudrais examiner avec soin si vous souhaitez l'utiliser ou non. Vous pouvez d’abord l’essayer avec un utilisateur test pour vous assurer que vous pouvez vous connecter sans problème en l’utilisant comme shell.
Mais comment changer votre shell par défaut
Pour les utilisateurs individuels, vous pouvez modifier leur shell de connexion à l'aide de la commande commande chsh .
chsh acceptera le chemin d'accès complet de tout fichier exécutable sur le système. Cependant, un avertissement sera émis si le shell n’est pas répertorié dans le fichier/etc/shells. D'autre part, il peut également être configuré de manière à n'accepter que les shells listés dans ce fichier, à moins que vous ne soyez root.
Pour changer le shell par défaut pour tous les utilisateurs, cela dépend de la façon dont vous ajoutez des utilisateurs. Par exemple, si vous utilisez la commande adduser
, vous pouvez configurer le shell par défaut dans /etc/adduser.conf:
$ grep -i dshell /etc/adduser.conf
# The DSHELL variable specifies the default login Shell on your
DSHELL=/bin/bash
J'utilise Byobu avec tmux sur différents systèmes, mais je viens de faire un nouveau test utilisateur sur Debian 8 avant de poster.
Ce qui semble fonctionner pour moi est:
définir -g default-Shell /usr/bin/fish définir -g default-command /usr/bin/fish
J'ai aussi des utilisateurs qui commencent Fish en premier et Byobu via fish.config, les deux fonctionnent, mais je pensais que le login Shell pourrait tout aussi bien être plus simple.
Cela ne répond pas aux détails de la question, mais à son titre. Donc, si votre problème est que byobu ne source pas /etc/profile
au démarrage, il peut être corrigé comme suit. Dans ~/.byobu/.tmux.conf
ajoutez:
set -g default-command '/bin/bash --login'
Ceci utilisera bash comme identifiant Shell. Ainsi, lors du démarrage de byobu /etc/profile
, il sera recherché.