web-dev-qa-db-ja.com

ログインシェルとしてbyobuをどのように構成しますか?

Telnetとsshのユーザーにログインシェルとしてbyobuを使用させる必要があります。 .login/.profile/.bashrcと同類のbyobuを使用することは避けたいと思います。/etc/passwdで定義されたシェルとしてby風を持ちたいです。すでにいくつかのテストを行っていますが、適切に機能させることができませんでした。何か案が?

6
Uqbar

By風自体はシェルではありません。これは、シェル内で実行するプログラムです。ユーティリティ byobu-enable および byobu-disable は、~/.profileの最後に byob (必要な場合)を起動する行を追加します新しいログインを生成します。そこにあるラッパースクリプトは、いくつかの健全性チェックを行い、再帰を防ぎます。

さて、そうは言っていますが、あなたが求めていることをどのように行うことができるかをお話ししますが、私は強く反対します。厄介な再帰または無限ループになる可能性があります。気をつけて!

  1. / etc/passwdの最後のフィールドで、ログインシェルとして/ usr/bin/screenを設定します。
  2. これを~/.screenrcに入れてください:

    source /usr/share/byobu/profiles/byoburc

9
Dustin Kirkland

これを/ etc/profileに追加します

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

シェルを設定する前に、必要なプログラムがシェルとして機能することを確認する必要があります。 「有効な」シェルは、/ etc/shellsで事前に構成されています。シェルとして使用するものがそのリストにない場合は、シェルとして使用するかどうかを慎重に検討します。最初にテストユーザーで試して、シェルとして使用して問題なくログインできることを確認できます。

しかし、デフォルトのシェルを変更する方法について説明します。

個々のユーザーについては、 chshコマンド を使用してログインシェルを変更できます。

chshは、システム上のすべての実行可能ファイルの絶対パス名を受け入れます。ただし、シェルが/ etc/shellsファイルにリストされていない場合、警告が発行されます。一方、rootでない限り、このファイルにリストされているシェルのみを受け入れるように構成することもできます。

すべてのユーザーのデフォルトシェルを変更するには、ユーザーの追加方法によって異なります。たとえば、adduserコマンドを使用する場合、/ 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

私はさまざまなシステムでtmuxでByobuを使用していますが、投稿する前にDebian 8で新しいユーザーテストを行いました。

私のために働いていると思われるのは:

  1. / bin/shとしてログインシェル
  2. O風は「byobu-launcher-install」で有効にします
  3. ここで見つけたように、TmuxはFishを起動しています: Byobu(tmux)で使用されるデフォルトのシェルを変更するにはどうすればよいですか?
 set -g default-Shell /usr/bin/fish
 set -g default-command /usr/bin/fish

また、fish.configを介してFishを最初に起動し、Byobuを起動するユーザーもいますが、ログインシェルはもっと単純なものになると考えました。

1
Buckshee

これは質問の詳細ではなく、タイトルに答えます。そのため、開始時にbyobuが/etc/profileをソースしていないという問題がある場合は、次のように修正できます。 ~/.byobu/.tmux.confに追加:

set -g default-command '/bin/bash --login'

これは、ログインシェルとしてbashを使用するため、byobu /etc/profileの起動時にソースされます。

1
John