アカウントを無効にせずにユーザーログインを無効にする

アカウントを無効にせずにユーザーログインを無効にする

adduserこのコマンドを使用して「bogus」というユーザーを作成するとします。アカウントを無効にせずに、このユーザーが実行可能なログインオプションではないことをどのように確認できますか?簡単に言えば、アカウントにアクセスできるようにしたいのsu - bogusですが、通常のログインプロンプトからアクセスしたくありません。

周りを見回すと、このユーザーのパスワードを無効にする必要があるようですが、passwd -d bogus役に立ちません。実際、パスワードを入力しなくても偽のアカウントにログインできるため、状況はさらに悪化しました。

特定のアカウントの一般ログインを無効にする方法はありますか?

注:明確に言えば、グラフィカルログイン画面(gdmなど)のメニューオプションからユーザーを削除する方法を知っていますが、これらの方法は実際にログインを無効にせずにアカウントを非表示にするだけです。テキストモードを含む通常のログインを完全に無効にする方法を探しています。

答え1

passwd -l user

あなたが望むもの。

これにより、ユーザーアカウントがロックされます。しかし、あなたはまだできます。

su - user

しかし、su - userルートでなければなりません。

!または、ユーザーパスワードの前に を追加して同じ操作を実行することもできます/etc/shadow(これはすべてpasswd -l後ろで実行されます)。これをキャンセルしますpasswd -u

答え2

マニュアルページには次のpasswd(1)ように表示されますpasswd -l

これによりアカウントは無効になりません。ユーザーは他の認証トークン(SSHキーなど)を使用してログインできます。アカウントを無効にするには、管理者はusermod --expiredate 1を使用する必要があります(これにより、アカウントの有効期限は1970年1月2日に設定されます)。

だから

usermod --expiredate 1 [LOGIN]

私の考えは、ユーザーがもう使用しないアカウントを無効にする正しい方法です(たとえば、会社を離れた場合)。

答え3

ユーザーのログインを防ぐ方法は2つあります。

  1. 編集によりユーザーをロックできます。/etc/passwd
  2. passwdスイッチを直接使用して-lコマンドを実行する

2番目の場合、ユーザーは他の認証トークン(SSHキーなど)を使用してログインできます。

方法1

  1. nologin 場所の検索: /bin/nologin または /bin/sbin/nologin
  2. 端末を開き、rootとしてログインします
  3. タイプvi /etc/passwd

passwdこれでファイルキーを押してファイルを編集できますIns

オプションを使用して、次の行を変更しますnologin/bin/bashつまり、ユーザーがログインできることを意味します)。

root:x:0:0:root:/root:/bin/bash

これに。nologinユーザーがログインできないことを示します。

root:x:0:0:root:/root:/bin/nologin

(または/bin/sbin/nologinを使用)

  1. vi 閉じるEsc :wq

方法#2

ユーザーロック:passwd -l username

ユーザーのロック解除:passwd -u username

答え4

/bin/falseシェルとして設定/etc/passwd

関連情報