Ubuntuで最初にやっておきたいrootのパスワード変更と新しいアカウント ~Amazon EC2の立ち上げ~ | そう備忘録

Ubuntuで最初にやっておきたいrootのパスワード変更と新しいアカウント ~Amazon EC2の立ち上げ~

rootパスワードの変更

前回の「UbuntuにGUI環境(desktop)をインストールしてVNCで接続してみた」にてパソコン(Windows10)からサーバーのデスクトップをリモートで表示させた。

今回は ubuntu 16.04 LTS での root パスワードを変更したので備忘録として記事にしておく。

セキュリティの観点から root のパスワードを変更しておく。

まず以下のコマンドで root ユーザに切り替える。

sudo su -
rootユーザに切り替える

その後、以下のコマンドでパスワードを変更する。

passwd root

新しいパスワードを2回入力してパスワードの変更は終了。

新アカウントの作成

ログインIDで ubuntu アカウントが残っているとセキュリティ上、よろしく無いので新しいアカウントを作成してubuntuは削除する事にした。

ここのページを参考にしている。

ubuntu の場合は新しいアカウントの作成時に –disabled-password を指定してパスワードを無効にする。

つまり ubuntu側でアカウントとパスワードの組み合わせで認証するのでは無く、公開キーとプライベートキーとのペアで認証をするので ubuntu上のパスワードは利用しない設定にする。

sudo adduser --disabled-password NewAccount

部屋番号やら電話番号やらを聞かれるけど Full Name だけ入力して後は空欄にした。

ちなみに ubuntu では adduser と useradd は動作が違っており、 adduser は対話形式でアカウントを作成するのに対して useradd はパラメータを指定して一発でアカウントを作成する昔ながら(?)のコマンド形式だ。

CentOS系ではどちらも同じ動作の模様。

NewAccount に切り替えて .ssh フォルダーを作成する。

sudo su - NewAccount
mkdir .ssh

.ssh の権限を変更する(ファイルの所有者のみが読み書きできるようにする)

chmod 700 .ssh

.ssh に authorized_keys.ssh という名前のファイルを作成して、ここに公開キーを保存する。

touch .ssh/authorized_keys

authorized_keys ファイルのファイル権限を 600 (つまり、ファイルの所有者だけがファイルを読み書き可能) に変更する。

chmod 600 .ssh/authorized_keys

公開キーを NewAccount/.ssh/authorized_keys に保存をする。

どこから持って来ても良いのだけれども ubuntu アカウントの公開キーをコピーする事にした。

一旦 exit で抜けて ubuntuアカウントから、

sudo cp /home/ubuntu/.ssh/authorized_keys /home/NewAccount/.ssh/

ちなみに以下のコマンドを打つと公開キーが取得できる。

GET http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key

これで取得できる公開キーは ubuntu でログインした時の ~/.ssh/authorized_keys と同じ内容だ(当たり前だけど)

公開キーをコピーしたので NewAccount でログインをしてみた所、ログインは出来たのだけれども sudoができない。。。

これではまだubuntuは削除できない。。。

再度 ubuntu でログインして NewAccount を sudoグループに追加する。

sudo gpasswd -a NewAccount sudo

しかし、これでも NewAccount で sudo が出来ない。。。

仕方がないので /etc/sudoers.d/90-cloud-init-users を編集する事にした。

visudoで以下の行をファイルに追加する。

NewAccount ALL=(ALL) NOPASSWD:ALL

sudo visudo -f /etc/sudoers.d/90-cloud-init-users

再度 NewAccount でログインをして sudo を実行した所、今度はOKだった。

ちなみにファイル名の 90-cloud-init-users は元々 ubuntu(16.04)ではその名前のファイルがsudoers.d 配下にあったのでそのまま使ったけど何でも良い(と思う)。

/etc/sudoers に #includedir /etc/sudoers.d とあるので sudoers.d 配下のファイルを読み込んでいる。

変更情報は sudoers を編集するのでは無くて sudoers.d 配下のファイルを編集する仕様なのだと思う。

後、編集と言えば chmod で変更して vi とかで編集してミスると面倒な事になるらしいので構文チェックの働く visudo で編集した方が無難だ。

ubuntuアカウントの削除

セキュリテイの為、以下のコマンドで ubuntu アカウントを削除する

sudo userdel -r ubuntu

たまに process で使っていて削除できないのメッセージが出ることがあるが、その場合は再起動をすればOKだ。

sudo shutdown -r now

/etc/passwd から ubuntu が無くなった事を確認した。

しかし /etc/sudoers.d/90-cloud-init-users には残っていたので念の為、先程の visudo で ubuntu を削除した

次回の「Ubuntu タイムゾーンの設定」の記事に続く

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。