GNU/Linux >> Linux の 問題 >  >> Linux

「bin」ユーザーにログインシェルが必要なのはなぜですか?

有効なシェルを持ち、パスワードを持たないユーザーは、パスワードを使用しない方法 (最も一般的な方法は ssh キー) でログインできます。 cron ジョブを実行するには、有効なシェルが必要です。 su bin -c 'wibble' にも有効なシェルが必要です 動作する (少なくとも Linux では su bin -s /bin/sh -c 'wibble' も動作します)。

binの場合 、ほとんどのシステムはコマンドを bin として実行することはありません 通常の操作では、シェルを /bin/false に設定します 大丈夫です。

bin を許可する直接攻撃のリスクはありません /bin/.ssh/authorized_keys を作成する必要があるため、SSH 経由でログインするには ユーザー bin として またはルートとして。つまり、侵入する唯一の方法は、侵入することです。ただし、有効なシェルを使用すると、設定ミスのリスクが高まります。また、SSH 以外のサービスを使用したリモート攻撃を許可することもできます。たとえば、攻撃者が daemon のパスワードを設定できるとユーザーが報告したとします。 Samba 経由でリモートから、そのパスワードを使用して SSH 経由でログインします。

DenyUsers にシステム ユーザーの名前をリストすることで、SSH ホールを塞ぐことができます。 /etc/ssh/sshd_config のディレクティブ (残念ながら、数値範囲は使用できません)。または、逆に、 AllowGroups を置くことができます ディレクティブを作成し、物理ユーザーを含むグループのみを許可します (例:users すべての物理ユーザーにそのグループ メンバーシップを付与する場合)。

Debian (#274229、#330882、#581899) でこの問題に関して報告されたバグがあり、現在オープンで「ウィッシュリスト」として分類されています。これらはバグであり、システム ユーザーは /bin/false を使用する必要があることに同意する傾向があります。 別の方法で行う必要があると思われる場合を除き、シェルとして。


ユーザーとしてそれらについて心配する必要はありません。彼らはセキュリティ グループという意味での「ユーザー」であり、「ログインして使用する」人々という意味でのユーザーではありません。 「/etc/shadow」を調べると、これらすべての「ユーザー」がパスワードを持っていないことがわかります (長いソルト付きハッシュの代わりに「x」または「!」のいずれか)。これは、これらのユーザーが何があってもログインできないことを意味します。

とはいえ、これらすべてのユーザーに対して「/bin/sh」を「/bin/false」に変更するのが良い考えかどうかはわかりません。プログラムはこれらのグループの下で実行されるため、必要なコマンドを実行できない可能性があります。 「/bin/sh」のままにしておきます。

これらのユーザーについて心配する必要はありません。作成したユーザー (および「/etc/shadow」にハッシュがあるユーザー) についてのみ心配してください


Linux
  1. Bashrcが現在のシェルがインタラクティブであるかどうかをチェックするのはなぜですか?

  2. 「sudo-i」ログインシェルがヒアドキュメントのコマンド文字列引数を壊すのはなぜですか?

  3. Bashの正規表現が変数であり、直接ではない場合にのみ機能するのはなぜですか?

  1. Swappinessの変更には再起動が必要ですか?

  2. / bin/shが/bin/bashではなく/bin/ dashを指すのはなぜですか?

  3. スクリプト ファイルの先頭に #!/bin/bash を配置する必要があるのはなぜですか?

  1. ユーザーのデフォルトのログイン シェルを表示する *nix コマンドは何ですか

  2. setuid ビットの動作に一貫性がないのはなぜですか?

  3. vsftpd の chroot_local_user が安全でないのはなぜですか?