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設定があるだけなのでファイルごと削除でもいいが、残しておいても特に問題はないかと。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Windows版Google Driveが使用中と言われアンインストールできない場合
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【Apache】サーバーに同時接続可能なクライアント数を調整する
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Linux】iconv/libiconvをソースコードからインストール
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】