web-dev-qa-db-ja.com

ルートのみを使用したUbuntuサーバーのインストール?

私は、VPSプロバイダー(DigitalOcean、Vulturなど)がサービスに展開するときに私に提供するイメージをローカルで複製しようとしています。私の知る限り、それらの基本イメージはかなりバニラなので、公式のubuntuサーバーのイメージはVirtual Boxで起動するのにぴったりで、それで終わりです。問題は、公式イメージが私にSudoユーザーの作成を強制することです。

これは通常の使用では素晴らしいことですが、VPSでインスタンスをスピンするときは、ユーザーとしてrootのみで始めています。公式のISOイメージでSudoユーザーなしでインストールを行う方法はありますか? (私はVagrant Boxにオープンしています、それもあります!)

ご注意ください:

  • rootユーザーで実行するのは悪いことを知っています。ローカルでのみ実行しています。「科学のため」です。
  • 私はユーザーからSudo suできることを知っていますが、これは私が望むものではありません。

繰り返しますが、VPSプロバイダーと一緒に提供してくれるようにしたいと思います...しかし、セキュリティに関する懸念に感謝します;-)

キックスタート 設定を使用して、インストール時にユーザーの作成を無効にすることができます。

そのためのオプションがあります:#d-i passwd/make-user boolean false

キックスタート は、異なるサーバー上でVPSのようなイメージを作成するのに役立ちます。通常は、まったく同じサーバーのインストールに使用されます。

1

これは、ユーザーByte Commanderで説明されているように、rootを有効にしてユーザーを削除することにより、実行する方法の段階的な例です。

  • インストール中に作成されたユーザーUSERNAMEとしてインストールにssh
  • Sudo suがルートになる
  • passwdに続いて、rootユーザーにパスワードを与えるパスワード
  • nano /etc/ssh/sshd_config次の編集でrootユーザーsshログインを許可します
    • (コメント化された)行#PermitRootLogin prohibit-passwordを見つけて、変更せずに、その下に次の新しい行を追加します
    • PermitRootLogin yes
    • Ctrl-XyEnterは、変更を保存してnanoを終了します
  • service ssh reloadはsshデーモン構成を再ロードします
  • すべてが正常かどうかを確認するために、新しいsshセッションを介してrootとしてログインを試みます。

この時点で:

  • cut -d: -f1 /etc/passwdは、最後のエントリとしてUSERNAMEをリストする必要があります。
  • cut -d: -f1 /etc/groupは、最後のエントリとしてUSERNAMEをリストする必要があります。
  • idUSERNAMEとして実行した場合)はuid=1000(username) gid=1000(username) groups=1000(username),4(adm),24(cdrom),27(Sudo),30(dip),46(plugdev),108(lxd)を返す必要があります

ユーザーUSERNAMEを削除します。

  • deluser --remove-home USERNAMEは、インストール中に作成されたユーザーを削除します。警告Warning: group 'USERNAME' has no more members.が表示されますが、このグループはコマンドが終了する前に自動的に削除されます。

この時点で:

  • USERNAMEという名前のユーザーをcut -d: -f1 /etc/passwdにリストしないでください。
  • USERNAMEという名前のグループは、cut -d: -f1 /etc/groupにリストされるべきではありません。
  • Rootパスワードを持つユーザーrootとしてssh経由でログインすることができます。

いくつかのものがまだUSERNAMEを参照している場合もありますが、この時点でのシステムの方法は、VPSが提供するものに比較的近く、Ansibleまたは同様。

Kickstart-solutionは正しいものである必要がありますが、この方がアーカイブしやすく、ほぼ同じ機能を提供できます。

1
Daniel F