/ procがマウントされていない場合は、chrootで実行されているかどうかはどうすればわかりますか?

/ procがマウントされていない場合は、chrootで実行されているかどうかはどうすればわかりますか?

私がスクリプトの一部にあるかどうかを知りたいです。それ以外の場合、chrootインストールは許可されません。/procchrootで実行されているかどうかはどうすればわかりますか?)。インストールされchrootていないかどうかはどうすればわかりますか/proc

ルートアクセス権があります。これはFedoraにあります。このソリューションは、使用されるファイルシステムに依存してはいけません。

答え1

Debian chroot は特定のファイルを に入れますが、これには/etc協力が必要です。

しかし、それが通常の根のような場合、それは通常の根のようです。したがって、違いが見えない場合はchrootにないとします(とにかく同じです)。

難しい方法は、/ルーティングされたデバイスをインストールしたときに得られるものと同じであることを確認することです。しかし、これにはルーティングが必要です。他の方法には/proc(またはルート)が必要です。

答え2

使用systemd-detect-virt -r。 (ルートでなければならない)

答え3

他の答えとは異なり、この答えはroot権限を必要としません。ランニングunshare -U true。成功すれば、もはやchroot状態ではありません。失敗し、これが表示された場合はunshare: unshare failed: Operation not permitted失敗しました。これはうまくいきます。commit 3151527ee007b73a0ebd296010f1c0454a919c7d: userns: ユーザーが chroot の場合、生成を許可しません。

警告:unshare他のさまざまな理由で失敗する可能性があります。成功すれば chroot にいないことは確かですが、失敗すると chroot にいる可能性が高いです。

関連情報