パスワードを持たないユーザー-非rootアカウントからそのアカウントにログインする方法


25

Scientific Linux(7.0)の使用を開始しました(この質問はディストリビューションに中立であると思われますが。)カーネルのバージョンは3.10.0-123.20.1.el7.x86_64です。

私の質問に戻ります。

rootアカウントに切り替え、そこからtest-accountコマンドを使用して新しいユーザーアカウントを作成しましたadduser test-account。パスワードの入力を求められず、パスワードを提供するオプションも使用しませんでした。だから、それは「パスワードなし」アカウントだと思う。ルートアカウントからこのアカウントにログインできます。テストアカウントにパスワードがあったとしても、パスワードを入力しなくてもできると思います。ただし、3番目のアカウントからthis(test-account)にログインしようとすると、パスワードの入力が求められます。押すだけでEnterは機能しません。

非rootアカウントからこのアカウントにログインすることは可能ですか?方法はありsudoますか(ルートへの切り替えやを使用せずに)?


システムのポリシーでは、パスワードが必要である可能性があります。パスワードを設定するオプションをadduser知って-pいるため、その使用は推奨されません。そのため、rootでpasswd test-accountパスワードを設定します。
-ott--

いいえ、アカウントはパスワードなしで作成され、ルートからアカウントを切り替えることでアクセスすることさえできます。私ができないのは、通常のユーザーから切り替えることだけです。
ラヴィア

ルートからどのように切り替えるのですか(どのコマンドを使用していますか)?
ロアイマ

@roaima su test-accounttest-accountこれは、パスワードプロンプトなしに切り替えられます(これはtest-account、パスワードを持っていたとしても起こります)。ただし、別の非特権ユーザーアカウントからテストアカウントに切り替えようとすると、カーネルはプロンプトでパスワードを要求し、無効(受け入れeneter)を受け入れません
-Lavya

あなたはすでにこれに対する答えを受け取っています。楽しい。
ロアイマ

回答:


29

エンタープライズGNU / Linuxおよびその派生物のデフォルトでは、adduserコマンドはユーザーを作成します。ユーザーは、そのユーザーのパスワードを明示的に指定するまで無効になります。

次に、CentOS 6.5の例を示します。これはScientific Linuxと同じです。

 $ sudo adduser test
 $ sudo grep test /etc/shadow
 test:!!:123456:0:99999:7:::

これは、/etc/shadowファイル内のパスワードフィールドが!!例にあるとおりであるためです。

passwdこのアカウントで実行すると、ユーザーのパスワードが変更され、ユーザーがログインできるようになります。

そのため、パスワードを持たないユーザーを作成するには、アカウントを作成してからパスワードを削除するだけです。

 $ sudo adduser test
 $ sudo passwd -d test
 Removing password for user test.
 passwd: Success
 $ su test
 $ whoami
 test

これで、すべてsuのユーザーtestが私の例のユーザーとして使用およびログインできるようになります。sudoアカウントとしてログインするために使用する必要はありません。

これは可能であり、パスワードなしでアカウントを持つことができますが、お勧めしません。ユーザーのパスワードを設定するだけの場合は、ログインを許可する必要があります。

$ sudo passwd test
[sudo] password for <YOURACCOUNT>:
Changing password for user test.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

「adduserコマンドは、ユーザーのパスワードを明示的に指定するまで無効にされるユーザーを作成します」:test-account その場合(ユーザーが無効になっている場合)、root から切り替えるにはどうすればよいですか?
ラヴィア

su test-account
ネイサンマッコイ

アカウントが無効になっている場合su、rootから使用してアカウントに切り替えることができるのはどういうことですか?
-Lavya

2
rootユーザー缶suシェルを持つ任意のアカウントに。たとえばシェルが設定され/bin/falseている場合、動作しません。それはただの魔法ですroot!多くのユーザーアカウントには有効なシェルがなく、そのユーザーとして特定のプログラムを実行するためにのみ使用されます。以下のようなapacheユーザーやApacheウェブサーバ。
ネイサンマッコイ

Ubuntu 18.04では、空のパスワードを持つユーザーとしてログインできません。
Ciro Santilli新疆改造中心法轮功六四事件

3

パスワードなしのユーザーguestがいます。これはその記録です:

guest:U6aMy0wojraho:17057:0:99999:7 :::

文字列「U6aMy0wojraho」は、ゲストユーザーのハッシュ化されたパスワードです。ログインすると、単にパスワードを入力するだけでシステムは私を許可します。

ファイル/ etc / shadowを編集し、ユーザー名と最初のコロンの直後に上記の文字列を追加する必要があります。

この文字列をUbuntuライブCDからコピーしました-ユーザーはパスワードなしです。


受け入れられた答え(passwd -d ...)の代わりに、これはsddmでも機能します。
mzimmer

1
/etc/shadowファイルを直接編集するのは危険であり、通常はお勧めしません。持っguest細かいことを考慮しますが、マルチユーザーファイルが保存されますと潜在的な不正なユーザ入力や問題を軽減します編集にパスワードをツールを使って。
ネイサンマッコイ

@NathanMcCoy、私はそれが危険であることに同意します。ただし、GUIツールでは空のパスワードを作成できません。少なくとも6文字または8文字が必要です。少なくとも、これは私が使用するKubuntuの場合です。
雷鳥ニコロフ

@NathanMcCoyはい、chpasswd -eより安全に行うことができます:unix.stackexchange.com/a/472966/32558
Ciro Santilli新疆改造中心法疆功六四事件

これは緊急復旧の場合に最適で、ハードドライブを接続して(いわば)、マシンを修正するためにいくつかのファイルを編集します。具体的には、このユーザーを追加し、一時的にsudoersに追加してから、シリアルコンソールを使用してログインし、opensshが壊れたものを修正します
Ray Foss

2

空のパスワードを持つユーザー

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

残念ながら、パスワードプロンプトは引き続き表示されます。

ただし、何も入力せずにEnterキーを押すと、ユーザーとしてログインしますtest-user-0

-eフラグが伝えchpasswdたパスワードが既に暗号化されていること、そしてU6aMy0wojraho空の文字列のハッシュです。

Ubuntu 18.04でテスト済み。

BusyBoxの自動ログイン

少なくとも端末では、誰かが毎回パスワードを入力できないようにするために、パスワードなしでユーザーを作成する必要はありません。inittab少しハッキングするだけで十分です。

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