私はScientific Linux(7.0)を使い始めました(ただし、この質問は配布中立的かもしれませんが…)。カーネルバージョンは3.10.0-123.20.1.el7.x86_64です。
私の質問に戻ります。
root
アカウントに切り替え、test-account
コマンドを使用して新しいユーザーアカウントを作成しましたadduser test-account
。パスワードの入力を求められず、パスワードを提供するオプションも使用しませんでした。だから私はこれが「パスワードのない」アカウントだと思います。ルートアカウントからこのアカウントにログインできます。テストアカウントにパスワードがある場合でも、パスワードを入力しなくてもこのアカウントにログインできます。ただし、3番目のアカウントでこの(テストアカウント)にログインしようとすると、パスワードの入力を求められます。そして、ただ押してもEnter
何の効果もありません。
このアカウントが root 以外のアカウントからログインできるかどうか。 (ルートに切り替えたり使用しないで)方法はありますかsudo
?
答え1
デフォルトでは、エンタープライズ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.
答え2
ユーザーがいますゲストこれにはパスワードはありません。その記録は次のとおりです。
ゲスト:U6aMy0wojraho:17057:0:99999:7:::
文字列「U6aMy0wojraho」は、ゲストユーザーのハッシュパスワードです。ログイン時にEnterキーを押してパスワードを入力すると、システムからログインできます。
/etc/shadow ファイルを編集し、ユーザー名と最初のコロンの後に上記の文字列を追加する必要があります。
Ubuntu Live CDからこの文字列をコピーしました。そのユーザーにはパスワードがありません。
答え3
パスワードが空のユーザー
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
十分です。Buildroot BusyBox initにrootユーザー名またはパスワードを入力せずに自動的にログインする方法は?