はじめに
今回の環境はコレ。
設定いじるサーバーはAmazonLinux2023
Windows10上のGitBashで操作
経緯
ひとつのサーバーに複数のWEB公開ツールを作りたい
1ユーザー : 1ツール にしたら管理しやすいのではないか
めんどいから外部からのログインはできないようにしたい
結論⇒ログイン不可ユーザーにしたらいいんじゃないか。しかし、内部からスイッチユーザーしたい。
1. ログイン不可ユーザーの作成
以下、記事を参考
それでは行きます。
下記コマンドを実行
- 新規作成
# useradd -s /bin/false <ユーザー名>
- 作成済みに変更したいとき
# usermod -s /bin/false <ユーザー名>
オプションの意味はこうらしい
ユーザーのログインシェル(フルパスで指定)を指定する(指定しなかった場合、デフォルト設定を用いる)
参考はコチラ
で、やってみた結果がこちら。 作成したいユーザー名は「tit-wiki」とする。
$ sudo useradd -s /bin/false tit-wiki $ ls .. xxx tit-wiki $ ls -al ../tit-wiki ls: cannot open directory '../tit-wiki': Permission denied [ec2-user@ip-10-0-0-10 ~]$ sudo ls -al ../tit-wiki total 12 drwx------. 2 tit-wiki tit-wiki 62 Aug 12 07:29 . drwxr-xr-x. 4 root root 38 Aug 12 07:29 .. -rw-r--r--. 1 tit-wiki tit-wiki 18 Jan 28 2023 .bash_logout -rw-r--r--. 1 tit-wiki tit-wiki 141 Jan 28 2023 .bash_profile -rw-r--r--. 1 tit-wiki tit-wiki 492 Jan 28 2023 .bashrc $
作れました。
あ、ちゃんとSSH出来ないかも確認しとこう。
$ ssh tit-wiki@xxx.net tit-wiki@xxx.net: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). $
うん、ちゃんと弾かれる。 これで変なログインとかの心配しなくていいから安心だね。
2. ログイン不可ユーザーにスイッチユーザーする
では行きます。
と、その前に。
これを調べる前、「普通にルートからスイッチユーザーしたらいいんじゃね?」って思ったんですよ。
で、思い切ってしてみたんですよね。
そしたら出来なかった。
# su tit-content su: user tit-content does not exist or the user entry does not contain all the required fields #
直訳したのがコレ。
su: ユーザー tit-content が存在しないか、ユーザーエントリに必須フィールドがすべて含まれていません
いつもの調子ではスイッチユーザーできないらしい。
でもしたいよスイッチユーザー。
いろいろ調べた結果、ユーザー追加したときのようにオプションがいるらしいことが分かった。
ログイン不可ユーザーはシェルを持ってないからスイッチユーザーできないらしい。
へえ~~~(ブランクN年オタク)
まあコレどおりにしてみようじゃないか。
やり方はコレ。
# su - <ユーザー名> -s /bin/bash
じゃあさっそく確認しながらやってみよう。
# whoami root # su - tit-wiki -s /bin/bash Last login: Sat Aug 12 07:44:13 UTC 2023 on pts/0 $ whoami tit-wiki $
できた~。
さいごに
雑にまとめると、
ログイン不可ユーザーは作れる
ログイン不可ユーザーにスイッチユーザーはできる
でした。
また一つ、学びを得ました。