docker等で新しいコンテナ立ち上げた場合、rootユーザしかいないってことも多いのではないでしょうか。
今回は、ユーザを追加したりした時の話をまとめておこうと思います。
※CentOSのdockerコンテナ前提です。
2019/9/24追記←パスワードを忘れた時の話を追加しました。
1.sudoユーザの追加
# useradd -G wheel <ユーザ名>
一番よく使うのがこれなのではないかと思います。
“wheel”はcentosでのsudoグループのことで、debian系だと、”sudo”を指定します。(redhat系もsudoでいいじゃん…)
-Gは2番目以降のグループを指定するオプションで、sudoグループに追加する場合は、-Gを用います。
2.一般ユーザの追加
# useradd <ユーザ名>
sudoさせないユーザを追加させたい場合はこれですね。1の方がよく見る気はしますが。
他にも、グループを指定する場合は-gオプション、ユーザIDを変更する場合は-uオプション等々オプションは色々ありますが、sudoユーザの指定以外のオプションはほとんど使わないですね…
3.パスワード設定
# passwd <ユーザ名>
↑のコマンドを入力すると、新しいパスワードの入力を求められるので、パスワードを2回入力します。
※ちなみに、パスワードの設定は、useraddコマンドで-pオプションを使用することで、ユーザ作成時に設定することも可能ですが、暗号化された文字列を指定しなければいけないのでpasswdの方がイージーです。
2019/9/24追記)
設定したパスワードを忘れるとログインできません。焦ります。
でも安心してください!
一般ユーザのパスワードは、rootからは変更可能なのです!!
え、rootのパスワードも忘れてしまったんですか??(←ブーメラン)
でも大丈夫です。
rootのパスワードを忘れてしまった場合は、docker attach
でログインし、passwdでパスワードの変更ができます!!
4.ログイン
# su - <ユーザ名>
このコマンドでログインしてみて、ユーザが正しく作成されていることを確認できるはずです。
※”-“を付け忘れると、ユーザのシェルとか環境変数が読み込まれなくて、「あれ??なんかスクリプトが正常に動かない??」みたいなことになります(実話)。
5.sudoコマンド
今回はせっかくsudo使えるユーザを作ったのでsudoコマンドも試してみます。
…と思ったのですが、CentOS7が最小構成のせいで、sudoコマンドがインストールされていません。
まずはsudoコマンドをインストールします。# yum install sudo
※よく使うyumコマンド→ http://www.mathkuro.com/?p=232
実際にsudoコマンドが使えるか試してみます。
sudo権限のある一般ユーザ でログインし、# su - <ユーザ名>
以下のコマンドを実行します。$ sudo ls /root/
↑のコマンドを試すとパスワードを聞かれると思うので、ログインしているユーザのパスワードを入力してください。
これでsudoコマンドとパスワードの確認ができるはずです。
終わりに
今回は、dockerの新規コンテナにユーザを追加するために色々調べました。前に、VirtualBoxでも同じことをしているはずなのですが、結構忘れてる部分も多かったです。
こういうのもメモとして残していこうと思います。
参考
Linuxにユーザーを追加する
useraddコマンドについて詳しくまとめました 【Linuxコマンド集】
sudoユーザーを追加する方法
コメント