Linuxユーザを追加するときに使うuseraddコマンド。Amazon Linux2のdockerイメージではデフォルトでは入っていなかったのでインストール方法を調べたたときの備忘録。Amazon Linux2に限らず、Linuxのminimal環境にuseraddコマンドを入れるのに使える方法だと思う。
useraddコマンド
「useradd」は新規ユーザーを作成し、ユーザーごとの設定を決めるコマンドです。作成時のデフォルト値をあらかじめ定めておくこともできます。
Amazon Linux2 dockerイメージ
Amazon Web ServicesのEC2でインスタンスを立てるときによく使われる Amazon Linux2
のdocker imageがdockerhubに上がっていた。
$ docker run --rm -it amazonlinux:2 bash bash-4.2# cat /etc/os-release | grep PRETTY_NAME PRETTY_NAME="Amazon Linux 2"
ただ、実際のAmazon Linux2 AMIとはインストールされているパッケージとかが若干の差異があるみたい。sudoとかuseraddとかsystemdとか入ってないし、minimal版みたいな感じっぽい。
デフォルトではuseraddコマンドが入っていない
Amazon Linux2向けのプロビジョニングを書いていて、ユーザの追加とかやりたかったんだけどuseraddコマンドが入っていない。
bash-4.2# useradd bash: useradd: command not found
useraddコマンドがない
— ぴんくもひかん (@pinkumohikan) 2020年7月4日
どうやっていれるんだ
適当にググったら shadow-utils
っていうパッケージに内包されているらしい。
シャドウパスワードファイルとユーザー/グループアカウントを管理するための ユーティリティ。
$ docker run --rm -it amazonlinux:2 bash bash-4.2# cat /etc/os-release | grep PRETTY_NAME PRETTY_NAME="Amazon Linux 2" bash-4.2# bash-4.2# bash-4.2# yum list shadow-utils Loaded plugins: ovl, priorities amzn2-core | 3.7 kB 00:00:00 (1/3): amzn2-core/2/x86_64/group_gz | 2.5 kB 00:00:00 (2/3): amzn2-core/2/x86_64/updateinfo | 223 kB 00:00:00 (3/3): amzn2-core/2/x86_64/primary_db | 42 MB 00:00:03 Available Packages shadow-utils.x86_64 2:4.1.5.1-24.amzn2.0.2 amzn2-core
yumリポジトリの追加要らずでシュッとインストールできそう。
shadow-utilsをインストールする
bash-4.2# yum install -y shadow-utils Loaded plugins: ovl, priorities amzn2-core | 3.7 kB 00:00:00 (1/3): amzn2-core/2/x86_64/group_gz | 2.5 kB 00:00:00 (2/3): amzn2-core/2/x86_64/updateinfo | 223 kB 00:00:00 (3/3): amzn2-core/2/x86_64/primary_db | 42 MB 00:00:04 Resolving Dependencies ... Installed: shadow-utils.x86_64 2:4.1.5.1-24.amzn2.0.2 Dependency Installed: audit-libs.x86_64 0:2.8.1-3.amzn2.1 libcap-ng.x86_64 0:0.7.5-4.amzn2.0.4 libsemanage.x86_64 0:2.5-11.amzn2 ustr.x86_64 0:1.0.4-16.amzn2.0.3 Complete!
useraddが使えるようになった🎉
bash-4.2# useradd Usage: useradd [options] LOGIN useradd -D useradd -D [options] Options: ...
めでたしめでたし