Ubuntuで最初にやっておきたいrootのパスワード変更と新しいアカウント ~Amazon EC2の立ち上げ~
Contents
rootパスワードの変更
前回の「UbuntuにGUI環境(desktop)をインストールしてVNCで接続してみた」にてパソコン(Windows10)からサーバーのデスクトップをリモートで表示させた。
今回は ubuntu 16.04 LTS での root パスワードを変更したので備忘録として記事にしておく。
セキュリティの観点から 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 を削除した
最近のコメント