adduser
コマンドを使用して「bogus」という名前のユーザーを作成するとします。アカウントを無効にせずに、このユーザーが実行可能なログインオプションにならないようにするにはどうすればよいですか。つまり、su - bogus
を介してアカウントにアクセスできるようにしたいのですが、通常のログインプロンプトを介してアクセスできないようにしたいのです。
あちこち検索して、そのユーザーのパスワードを無効にする必要があるようですが、passwd -d bogus
を実行しても解決しませんでした。実際、パスワードを入力しなくても偽にログインできるようになったため、事態はさらに悪化しました。
特定のアカウントの通常のログインを無効にする方法はありますか?
注:明確にするために、gdmなどのグラフィカルログイン画面のメニューオプションからユーザーを削除する方法は知っていますが、これらのメソッドは、実際にログインを無効にすることなくアカウントを非表示にするだけです。通常のログインを完全に無効にし、テキストモードを含めます。
passwd -l user
あなたが欲しいものです。
これにより、ユーザーアカウントがロックされます。しかし、あなたはまだできるでしょう
su - user
ただし、ルートとしてsu - user
を使用する必要があります。
または、!
のユーザーのパスワードの前に/etc/shadow
を付加することで同じことを実現できます(これはpasswd -l
が舞台裏で行うすべてのことです)。そしてpasswd -u
はこれを元に戻します。
passwd(1)
のmanページはpasswd -l
について述べています:
これによってアカウントが無効になるわけではないことに注意してください。ユーザーは、別の認証トークン(SSHキーなど)を使用してログインできる場合があります。アカウントを無効にするには、管理者はusermod --expiredate 1を使用する必要があります(これにより、アカウントの有効期限が1970年1月2日に設定されます)。
そう
usermod --expiredate 1 [LOGIN]
ユーザーがもう使用できないはずのアカウントを無効にする正しい方法が好きなようです(たとえば、彼が退職したため)。
ユーザーがログインできないようにする方法は2つあります。
/etc/passwd
を編集してユーザーをロックできます-l
スイッチを使用してpasswd
コマンドを直接発行する2番目のケースでは、ユーザーは別の認証トークン(SSHキーなど)を使用してログインできます。
方法#1
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を使用)
方法#2
ユーザーをロックするには:passwd -l username
ユーザーのロックを解除するには:passwd -u username
/etc/passwd
ファイルに変更を加えるだけの簡単な作業です。
通常はデフォルトで/bin/bash
であるシェルを変更する必要があります。つまり、このシェルを使用してログインすると、/bin/nologin
または/bin/false
に変更できます。 /bin/nologin
は古くなっているため、/bin/false
に変更することをお勧めします。
セットする /bin/false
のシェルとして/etc/passwd
passwd -l user
コマンドを使用してユーザーをロックすると、!!
ファイルに "/etc/shadow
"が示されます。ただし、ルートアカウントからユーザーシェルに切り替えることはできますが、他の通常のユーザーログインシェルからユーザーアカウントに切り替えることはできません。
/bin/nologin
ファイルに/bin/false
または/etc/passwd
を提供して、アカウントを無効にすることもできます。そのため、ユーザーがログインできない場合があります。