Linuxでユーザーが「ログインを許可されている」かどうかをどのように確認しますか?


12

質問は簡単です。システムにログインできるすべてのユーザーアカウントを一覧表示したいのですが、/ etc / passwd内のすべてのユーザーが「ログインできた」ユーザーであるかどうかわかりません。

詳細:

シェルが/usr/sbin/nologinおよび/bin/falseに設定されているシェルのユーザーを表示できますが/etc/passwd、それはログインできないことを意味しますか?

私はまた、私は、ユーザーの暗号化されたパスワードを設定することができることを知っている*!/etc/shadow「無効なユーザーには、」また、ユーザー、右の「ログインできない」として扱うべきであるので、アカウントを無効にするには?

回答:


13

これの多くは「ログイン」の定義に依存します。技術的には&に存在するユーザーはすべて「有効なユーザー」であり、理論的には適切な状況下でログインできます。/etc/passwd/etc/shadow

あなたが話している方法は、次の広範なカテゴリに分類されます。

  • 持つユーザーは、アカウント「ロック」
    そのパスワードに設定されているユーザ*!(大会がしばしばだった日の日に試合が「ロックアウトされていない」さん、または他のいくつかのハッシュ*LK*「ロック」のために、)。
    これらのユーザーは、パスワードを入力してログインすることはできませんが、他の認証メカニズム(たとえば、SSHキー)を使用してログインできます。

  • 「非対話型」シェルを持つユーザー
    アカウント「非対話型シェル」を持っている(Aユーザ/bin/false/sbin/nologin)にログインできない対話的にすなわち、それらは(これも防ぎSSHでコマンドを実行するシェルプロンプトを取得することはできません-ユーザーがシステムにSSHキーを持っている場合のコマンド実行)。
    これらのユーザーは、(POP / IMAPおよびSMTP AUTHを介して)メールの読み取り/送信などを行うためにログインできる場合があります。シェルを使用する必要のないユーザー(およびほとんどの「サービスアカウント」)に非インタラクティブシェルを設定することは、一般的に良い習慣と考えられています。

したがって、「ログイン可能」の基準に応じて、これらのいずれかまたは両方をチェックすることができます。


6

ユーザーを無効にすることと、シェルを/ bin / falseなどに設定することには違いがあります。

シェルを/ bin / falseに設定すると、ユーザーはシェルを取得できなくなりますが、ローカルユーザーが他の目的(メール認証、ftpなど)で使用されている場合は、システムにログインできます。ユーザーを無効にすると、ローカルユーザーを使用するサーバーのサービスを使用できなくなります。


したがって、実際には/ etc / passwd内のすべてのユーザーは「ログインできます」ユーザーですが、一部は無効(*!)であり、一部は制限されています(/ bin / false)?
ハリーツ14

3

上記に加えて、いくつかの異なる方法を使用してパスワード入力が正しいように見えても、ユーザーがシステムからロックアウトされる場合があります。

/etc/security/access.confを使用して、ログインできるユーザーを制限できます。

特定のユーザーを制限したり、必要に応じてログイン動作を変更したりするように構成できるPAMモジュールが多数あります。(つまり、サーバー上にログインを許可しないホームディレクトリはありません。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.