mkpasswdコマンド使いたいけど、サーバを立てるのは面倒くさい（コンテナを使う方法）

# 概要
mkpasswdコマンドを使いたいんだけど、サーバ立ててmkpasswdコマンドインストールするのは面倒くさいという話です。現場では、たまたまmkpasswdコマンドが使えるサーバが見つかったので、事なきを得たのですが、今後困ることもあるかな？と思って備忘録的にメモしておきます。

# セキュリティは気にしないぜ
って人は、これ使うと良いです。（自己責任で）
入力したパスワードをどこでどう悪用（出来るのか？）されていても文句は言えません。

https://ja.mkpasswd.web-tool.net/

# セキュリティは気にしないぜ２
Docker Hubにもいくつかイメージが落ちています。
Pulls 100K+ なので、これが人気あるっぽい。
Dockerfileが公開されていないので、何が仕込まれているか分からない・・

https://hub.docker.com/r/d0nsk1/mkpasswd

```
C:\Users\taka_>docker run -d d0nsk1/mkpasswd
Unable to find image 'd0nsk1/mkpasswd:latest' locally
latest: Pulling from d0nsk1/mkpasswd
5bed26d33875: Pull complete
f11b29a9c730: Pull complete
930bda195c84: Pull complete
78bf9a5ad49e: Pull complete
b86a56c4cbfa: Pull complete
Digest: sha256:9b45d5f1dd6ddc51edf6b4997d0b75a66ebd32ae03755d7a82a1e1ff7c56efa0
Status: Downloaded newer image for d0nsk1/mkpasswd:latest
48ce5d384262dfe550b3dfbd6ecead5df369cae346c67b701d5ec21ff9f87dc5

C:\Users\taka_>docker exec -it 48 /bin/bash
root@48ce5d384262:/# mkpasswd
Password:
G0IX3MDFP4ORc
root@48ce5d384262:/# exit
exit

C:\Users\taka_>docker rm -f 48
48

C:\Users\taka_>
```

一応動きはします。

# というわけでコンテナを自分で作ります
Ubuntuだとmkpasswdコマンドないそうです。あと、Centosでもmkpasswdコマンドなかったので、Centosの代替の一つであるRocky Linuxのコンテナイメージにmkpasswdコマンドをインストールしてみます。

mkpasswdコマンドは、expectというパッケージに入っています。

```
C:\Users\taka_>docker run --name rockylinux -it rockylinux /bin/bash
Unable to find image 'rockylinux:latest' locally
latest: Pulling from library/rockylinux
72a2451028f1: Pull complete
Digest: sha256:5fed5497b568bcf7a90a00965987fc099edbcf44b1179a5ef6d4b47758281ca5
Status: Downloaded newer image for rockylinux:latest
[root@e704117b5602 /]# mkpasswd
bash: mkpasswd: command not found
[root@e704117b5602 /]# yum -y install expect
Rocky Linux 8 - AppStream                                                               4.6 MB/s | 9.6 MB     00:02
Rocky Linux 8 - BaseOS                                                                  2.3 MB/s | 6.6 MB     00:02
Rocky Linux 8 - Extras                                                                   20 kB/s |  12 kB     00:00
Dependencies resolved.
========================================================================================================================
 Package                   Architecture              Version                            Repository                 Size
========================================================================================================================
Installing:
 expect                    x86_64                    5.45.4-5.el8                       baseos                    265 k
Installing dependencies:
 tcl                       x86_64                    1:8.6.8-2.el8                      baseos                    1.1 M

Transaction Summary
========================================================================================================================
Install  2 Packages

Total download size: 1.4 M
Installed size: 4.9 M
Downloading Packages:
(1/2): expect-5.45.4-5.el8.x86_64.rpm                                                   1.1 MB/s | 265 kB     00:00
(2/2): tcl-8.6.8-2.el8.x86_64.rpm                                                       573 kB/s | 1.1 MB     00:01
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   575 kB/s | 1.4 MB     00:02
Rocky Linux 8 - BaseOS                                                                  1.6 MB/s | 1.6 kB     00:00
Importing GPG key 0x6D745A60:
 Userid     : "Release Engineering <infrastructure@rockylinux.org>"
 Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                1/1
  Installing       : tcl-1:8.6.8-2.el8.x86_64                                                                       1/2
  Running scriptlet: tcl-1:8.6.8-2.el8.x86_64                                                                       1/2
  Installing       : expect-5.45.4-5.el8.x86_64                                                                     2/2
  Running scriptlet: expect-5.45.4-5.el8.x86_64                                                                     2/2
  Verifying        : expect-5.45.4-5.el8.x86_64                                                                     1/2
  Verifying        : tcl-1:8.6.8-2.el8.x86_64                                                                       2/2

Installed:
  expect-5.45.4-5.el8.x86_64                                  tcl-1:8.6.8-2.el8.x86_64

Complete!
[root@e704117b5602 /]# mkpasswd
P9enbb3O,
[root@e704117b5602 /]# mkpasswd -l 16
7xlidphtO,qcdAs8
[root@e704117b5602 /]# exit
exit

C:\Users\taka_>docker rm -f rockylinux
rockylinux

C:\Users\taka_>
```

# というわけで
Docker便利ですね。
Dockerすらインストールするの面倒だぜって場合は、どうしましょう。。