[SadServers] 解説 "Venice": Am I in a container?
"Venice": Am I in a container?
SadServersの "Venice": Am I in a container? の解説です。
SadServers って何? って人は、 SadServers解説 を見てください。
一言でいうと、LeetCode (コーディング問題集) の Linuxサーバ設定版のようなものです。
問題
Scenario: "Venice": Am I in a container?
Level: Medium
Description: Try and figure out if you are inside a container (like a Docker one for example) or inside a Virtual Machine (like in the other scenarios).
コンテナの中にいるのか(例えばDockerのような)、仮想マシンの中にいるのか(他のシナリオのような)、試してみてください。
Test: This scenario doesn't have a test (hence also no "Check My Solution" either).
このシナリオにはテストがありません(したがって、「Check My Solution」もありません)。
Time to Solve: 15 minutes.
OS: Debian 11
解説
ググってみると、いろいろな方法があるようです。
ここでは、ルートディレクトリの i-node
を調べてみます。
# -i で i-nodeを表示。
root@ip-172-31-43-74:/# ls -ali /
total 72
277640 dr-xr-xr-x 1 root root 4096 Jan 5 09:39 .
277640 dr-xr-xr-x 1 root root 4096 Jan 5 09:39 ..
287384 drwxr-xr-x 1 root root 4096 Sep 24 22:36 bin
277411 drwxr-xr-x 2 root root 4096 Sep 3 12:10 boot
1 drwxr-xr-x 10 root root 2660 Jan 5 09:39 dev
290181 drwxr-xr-x 1 root root 4096 Jan 5 09:39 etc
396395 drwxr-xr-x 2 root root 4096 Sep 3 12:10 home
420788 drwxr-xr-x 1 root root 4096 Sep 24 22:36 lib
396603 drwxr-xr-x 2 root root 4096 Sep 12 00:00 lib64
396605 drwxr-xr-x 2 root root 4096 Sep 12 00:00 media
396606 drwxr-xr-x 2 root root 4096 Sep 12 00:00 mnt
396607 drwxr-xr-x 2 root root 4096 Sep 12 00:00 opt
1 dr-xr-xr-x 144 root root 0 Jan 5 09:39 proc
396609 drwx------ 2 root root 4096 Sep 12 00:00 root
1 drwxrwxrwt 11 root root 320 Jan 5 09:39 run
30311 drwxr-xr-x 1 root root 4096 Sep 24 22:36 sbin
396677 drwxr-xr-x 2 root root 4096 Sep 12 00:00 srv
1 dr-xr-xr-x 13 root root 0 Jan 5 09:36 sys
1 drwxrwxrwt 8 root root 160 Jan 5 09:39 tmp
290133 drwxr-xr-x 1 root root 4096 Sep 12 00:00 usr
31974 drwxr-xr-x 1 root root 4096 Sep 12 00:00 var
277640 dr-xr-xr-x 1 root root 4096 Jan 5 09:39 .
より、 /
ルートディレクトリの i-node
は 277640
ということがわかります。
通常ルートディレクトリのi-node
は 2
なので、277640
ということは コンテナ内であるということがわかります。
Discussion