web-dev-qa-db-fra.com

Comment configureriez-vous Byobu en tant que shell de connexion?

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?

6
Uqbar

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!

  1. Définissez/usr/bin/screen comme shell de connexion dans le dernier champ de/etc/passwd.
  2. Mettez ceci dans votre ~/.screenrc:

    source /usr/share/byobu/profiles/byoburc

9
Dustin Kirkland

ajoutez ceci à/etc/profile

echo $- | grep -qs i && byobu-launcher && exit 0
2
user47740

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
1
Ken Kinder

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:

  1. Shell de connexion en tant que/bin/sh
  2. Byobu est activé via 'byobu-launcher-install'
  3. Tmux lance Fish comme je l’ai trouvé ici: Comment changer le shell par défaut utilisé dans Byobu (tmux)?
 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.

1
Buckshee

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é.

1
John