アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【Amazon/AWSDebianCentOS
【Amazon/AWS】初期ユーザadmin/ec2user名とグループ名を変更する
POSTED BY
2023-04-20

AWSインスタンス作成時の初期ユーザ名・グループ名はDebianの場合admin/adminであるが、このままではまずいので変更する。目的は、

変更前:
ログインID:admin
ニックネーム:Debian
グループID:admin
ホームディレクトリ:/home/admin

を、

変更後:
ログインID:hogeuser
ニックネーム:Hoge User
グループID:hogegroup
ホームディレクトリ:/home/hogeuser

とすることとする。

しかしながら、usermodで単純に変更しようとしても、「今ログイン中のユーザ名は変更できない」とエラー終了してしまう。

よって、sudo権限を持つテンポラリユーザーを作成し、そのユーザー名でログインして、そこからadminの情報を変更する方法を取る。

1、sudoの設定

sudoグループはNOPASSWDとしておく(当方環境の場合)。

sudo -s
export EDITOR=vi
visudo /etc/sudoers

#Defaults       env_reset
Defaults        env_keep += "PATH EDITOR"
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

2、テンポラリsudoユーザー(tmpuser)の作成とSSHログインし直し

sudo -s
useradd -G admin tmpuser
usermod -aG sudo tmpuser
cd /home
cp -Rp admin tmpuser
chown -Rh tmpuser:admin tmpuser

いったんマシンからログアウトし、今度はtmpuserでSSHし直す

ssh tmpuser@IPADDR -i <ssh private key>
</ssh>

3、テンポラリtmpuserがsudoでrootになってadminをhogeuserに変更する

tmpuserでSSHログインして、他のユーザ(admin)がマシンにログインしていなければ、usermodが可能になる。

sudo -s
usermod -l hogeuser admin
groupmod -n hogegroup admin
cd /home
mv admin hogeuser
usermod -d /home/hogeuser -c "Hoge User" hogeuser

これで、最初に記した「変更後」の情報にadminが書き換わったはずである。

cat /etc/passwd
cat /etc/group

で確認して、マシンからログアウトし、今度はhogeuserでSSHログインする。

ssh hogeuser@IPADDR -i <ssh private key>
</ssh>

4、テンポラリtmpuserを削除して完了

hogeuserでSSHログインでき、かつsudo -sでパスワード無しでrootになれることが確認できたら、tmpuserは削除できる。

sudo -s
userdel -r tmpuser

あと元々あったsudoers.d/90-cloud-init-usersもadmin用NOPASSWD設定があるだけなのでファイルごと削除でもいいが、残しておいても特に問題はないかと。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】