本番サーバーに zsh をインストールするのは一般的ですか?

本番サーバーに zsh をインストールするのは一般的ですか?

質問は明確ではなく、範囲が広すぎるかもしれませんが、どんなに短くても範囲が広くても、どんな回答でも大歓迎です。

しばらく前に、本番サーバーに zsh をインストールするように依頼しました。管理者の会社からは、これは開発サーバーではなく本番サーバーなのでインストールできないという返答がありました。

私は過去 5 年間 zsh と oh-my-zsh を使用してきましたが、とても気に入っています。zsh により作業が簡単かつ高速化します。しかし、それだけでは十分な議論ではありませんでした。

私はセキュリティや、ここで関係する可能性のあるその他の問題に精通していないため、次のような質問をします。

  1. 本番サーバーに zsh をインストールしてもシステムに害はありませんか?
  2. この場合、zsh のインストールを許可しますか? また、その理由は何ですか?
  3. 運用サーバー上で bash を使用してユーザーを制限することは意味があるでしょうか?

答え1

zshは単なるシェルであり、サービスを開始せず、setuid コマンドも付属していません。したがって、パッケージをインストールしただけでは、誰かまたは何かが実際に使用するまで何も起こりません。権限は必要ないため、どのユーザーでも自分のホーム ディレクトリまたはアクセスできる場所に自分でインストールできます。

もしそうじゃなかったら制作品質を および管理者ユーザーのログイン シェルにすると、ある程度のリスクが生じると主張する人もいるかもしれませんが、bashや などの他のシェルよりもはるかに健全な構文を備えているためtcsh、状況は大幅に改善されると私は主張します。

主な用途は対話型シェルですが、 でスクリプトを記述する方が、 スクリプトzshよりも安全で信頼性の高いスクリプトになる可能性が高いと私は主張します (変数を引用符で囲むことを忘れて、無意識のうちに 構文でスクリプトbashを記述している人がどれほど いるか、また、シェバンをからに変更すると、スクリプトの多くのバグが修正される様子をご覧ください)。bashzsh#! /bin/bash#! /bin/zsh -

いずれにせよ、インストールは、zsh私がこれまで働いてきたすべての場所で、すべてのサーバー展開において最初に行ってきた作業の 1 つです。

ただし、一部のソフトウェアでは bash 中心の環境が期待されることは珍しくないため、通常はこれをデフォルトでユーザーのログイン シェルにすることはありません。

答え2

他の方と同じように、これが私の意見です:

  1. 本番サーバーに zsh をインストールしてもシステムに害はありませんか?

「無害」の定義。厳密に言えば、直接的な害はありません。しかし、実稼働システム上のコードはどれも潜在的な攻撃ベクトルです。その意味では、真に「無害」とは言えません。できたシステムへの攻撃に使用される可能性があります。間接的に問題を引き起こす可能性のある他の方法もあります。たとえば、ZSH は bash よりもリソースを少し多く消費するため、システムがほぼ満杯の状態では問題になる可能性があります。

  1. この場合、zsh のインストールを許可しますか? また、その理由は何ですか?

具体的な状況によっては、すでにインストールされている可能性があります。

私の個人用システムにはすべて ZSH がインストールされており、root を含むすべてのユーザーのデフォルト シェルとして設定されています。これは単に、これらのシステムでローカル シェルから頻繁に作業しており、多くの場合 ZSH を積極的に使用しているからです。

しかし、私が職場で管理しているすべてのシステムにそれがインストールされているわけではありません。私が行っている管理作業の約95%は、これらのシステムのシェルに実際に触れることはありません(私は多く仕事で Ansible を使っているので、慣れた環境にする意味はありません。また、実際の開発システム以外にインストールする可能性もほとんどなく、オフサイトから直接アクセスできるものにインストールする可能性はまったくありません。

  1. 運用サーバー上で bash を使用してユーザーを制限することは意味があるでしょうか?

実際のシェル アクセスを伴わない特定の非常に制限されたケース以外では、一般ユーザーが実稼働システムに触れることを許可することが現実的かどうか疑問です。

たとえば、私が働いている会社では、IT部門とウェブサイトの保守を直接担当する人だけが、通常のHTTPSアクセス以外でウェブサーバーにアクセスできます。IT担当者(私を含む)は、ウェブサーバーの管理専用の特別なアカウントでログインする必要があり、その場合でも、サーバールームの物理的なコンソールの前に座っている場合を除き、システムへのアクセスは制限されています。ウェブデザイナーは、ウェブサイトのルートへのSFTPアクセスのみが可能で、何もないそうでない場合は、bash (管理用途の内部標準) 以外のシェルは必要ありません。

同様に、社内ファイル サーバーの場合、実際のシェル アクセスを持つのは IT 部門のみです。他のユーザーは特定のディレクトリへの特別な制限付きアクセスを持ち、通常は通常のファイル サーバー プロトコル (SMB、NFS など) に加えて SFTP と、場合によっては rsync が許可されますが、実際にはシェル アクセスは必要ないため、実際のシェル アクセスを持つユーザーはいません。

答え3

私の経験では、実稼働サーバーに zsh をインストールすることはまれです。とはいえ、私は主に「保守的な」顧客 (銀行、行政機関など) と仕事をしているので、状況は異なる可能性があります。

  1. Zsh自体は無害なこれは、bash、kshなどの「単なる別のシェル」です。しかし、多くの企業では、セキュリティポリシーは攻撃対象領域を可能な限り制限するつまり、必要でない限り何もインストールしないということです。zshは無害ですが、コードベースにバグが含まれている可能性がある. 詳しくはこちら砲弾ショックもしまだご存知でなければ。:)
    そうは言っても、vi だけではなく vim を使うなど、「コモディティ」にはある程度の寛容さがあります。Zsh はこのカテゴリに入る可能性があります。

  2. 生産されていません、それは起こりません。攻撃対象領域を減らすことに加えて、スクリプトを 2 回テストする必要があるという事実もあります。1 回は zsh で、もう 1 回は bash でテストする必要があります。これには時間と費用がかかります。

  3. これを bash に限定するとは言いません。zsh でできて bash ではできないことはありますか?

最後に:bashはほぼ業界標準ですこれは、ほとんどのエンタープライズ グレードのディストリビューション (RHEL、SUSE など) のデフォルト シェルであり、Debia、Ubuntu などの多くの非常に人気のあるディストリビューションでも使用されています。
私は長年にわたり「新しい」シェルを試してきました。zsh と fish は、私が本当に気に入った 2 つです。自宅での使用には適しているかもしれませんが、職場ではずっと bash を使用しています (AIX などで作業する場合は ksh を使用しています)。私は自宅でも bash を使用していますが、古い習慣はなかなか抜けません。

答え4

他にも意見はありますが、私の意見を述べます。

  1. 本番サーバーに zsh をインストールしてもシステムに害はありませんか?

新しいソフトウェアを導入することは、ほとんどの場合無害ではありません。たとえば、それに関連する脆弱性を特定し、修正プログラムを適用することが必要になります。

  1. この場合、zsh のインストールを許可しますか? また、その理由は何ですか?

いいえ。具体的なメリットが特定されることを望みます。

  1. 運用サーバー上で bash を使用してユーザーを制限することは意味があるでしょうか?

はい、bash素晴らしいです :-) そして、社内のニッチなユーザー グループが、zshより広範なサポート チームが知らないうちにスクリプトを書き始めたら、彼らは刺激を受けます。

関連情報