web-dev-qa-db-ja.com

rootユーザーのデフォルトのシェルを非POSIXシェルに設定することが推奨されないのはなぜですか?

ルートのデフォルトのシェルをbashからfishに変更します。私の知る限り、魚はPOSIX標準のシェルではありません。一方、システム内のカーネルなどがPOSIX標準と関係がある可能性があるため、rootのデフォルトシェルを非POSIXシェルに設定すると、OSの一部に問題が発生する可能性があるため、お勧めしません。 rootユーザーのデフォルトのシェルを非POSIXシェルに設定しないように他の人にアドバイスするトピックについての人々を見ました!正しいですか?

ルートのデフォルトのシェルを非POSIXシェルに変更する必要がありますか? (理由を説明していただければ幸いです。私はUnixライクな世界の初心者です!)

6
Cy8099

Fishをデフォルトのログインシェルにすると、Shell envvarがfishに設定されます。多くのプログラム(vim、tmuxなど)は、別のシェル(/ bin/shなど)を使用するように明示的に構成しない限り、シェルコマンドの実行に使用するシェルとしてそれを使用します。これらのシェルコマンドにはPOSIXシェル構文が含まれている可能性が高いため、コマンドはfishによって正しく実行されません。これは、一見ランダムでイライラする問題を経験する可能性が高いことを意味します。

デフォルトのログインシェルとしてfishを設定できます。私は2台のメインコンピューターでこれを行います。しかし、私は経験豊富なUNIXユーザーであり、これが引き起こす可能性のある潜在的な問題を認識しています。私はそれらを回避する方法も知っています。たとえば、vimrc設定ファイルにset Shell=/bin/shを追加します。経験が浅い場合、または必要となる追加の構成を処理する必要がない場合は、ログインシェルをbashまたはその他のPOSIXシェルに設定したままにしておくことをお勧めします。次に、インタラクティブモードでそのシェルから魚を発射します。インタラクティブなフィッシュセッションを開始できなくなるような方法でフィッシュ設定を台無しにする可能性が高いため、これも安全です。 fishをデフォルトのログインシェルにした場合、ログインできなくなります。

要するに、UNIX CLIの経験が浅いユーザーや、魚を初めて使用する場合は、デフォルトのシェルとして設定しないでください。経験豊富なUNIXCLIユーザーであり、fishを数週間使用していて、正しく構成できると確信している場合は、デフォルトのシェルにすることができます。

2
Kurtis Rader