ユーザー環境を設定するopenssh / telnetコードで次を使用しています。
setenv("TEST_ENV", "testing", 1);
しかし、これはログイン後にユーザーが変更できますが、読み取り専用の環境変数にする方法はありますか?
いいえ、プロセスの環境を読み取り専用にする方法を知りません。
プロセスがその親の環境を変更できないこと、およびプロセスが順番に作成するプロセスの初期環境を完全に自由に設定できることを認識していると思います。やりたいこと、またはプログラムが実行できないようにしたいことについて、もう少し詳しく説明する価値があるかもしれません。
一部の OS は、カーネルでかなり精巧なサンドボックス サポートを備えており (たとえば、OS X がサポートしていることは知っていますが、それだけではありません)、これらはへのアクセスを制御できる場合がありgetenv
ます。しかし、それは明らかにプラットフォーム固有です。