rootのパスワード変更と新しいアカウント ~Amazon EC2の立ち上げ~
rootパスワードの変更
Ubuntu Server 16.04 LTS。
セキュリティの観点からrootのパスワードを変更する。
まず以下のコマンドでrootユーザに切り替える。
sudo su -
その後、以下のコマンドでパスワードを変更する。
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でログインして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を削除した
最近のコメント