pythonスクリプトに接続された外部デバイスを使用して自分自身を認証できるようにコンピュータをセットアップしようとしています。私は、自分のプログラムでinittab
のlogin
プログラムを置き換えることから始め、私はbashシェルに入ることができました。問題は、login
で与えられたような(私が推測する)ような新鮮な環境は得られないということです。私は環境を混乱させる方法があることを知っていますが、たとえそうしたことが当てはまるのであれば、私はそれを "デフォルト"の設定にする方法を見ていません。クリーンな環境でCからbashを呼び出すにはどうすればいいですか?
答えて
いくつかのアイデア:すべての
まずそれは、プラグイン可能なログインアーキテクチャPAMを使用するように、ほとんどの場合に良いだろう。これにより、すべてのPAM対応アプリケーションとサービスが認証方法(たとえばssh)を使用できること、および通常のサービスを使用してそれをバイパスする方法がないことが保証されます。あなたは本当に私は自分自身がそれぞれの環境変数セットのためのunsetenv
を使用して環境をクリアすることをお勧めしたいlogin
を交換したい場合は
(すでに設定された変数を決定するためにenviron
を使用することができます)。環境をクリーンアップした後、bash
でプログラムを置き換えるにはexec
のような呼び出しを使用することがありますが、このコンテキストでは環境は変更されません。コマンドライン引数-l
を追加して、起動されるbashをlogin
とすることができます。
Bashは起動時にいくつかの初期スクリプトを実行しています。設定したくない環境変数については、/etc/profile
、/etc/bashrc
などのファイルをチェックすることができます。
env
に依存したい場合は、env -i bash
を使用して、きれいな環境でbashを呼び出すことができます(それはすべてのLinuxシステムに存在するはずです)。
main(int argc、char * argv []、char * envp [])がオペレーティングシステムによって呼び出されると、3番目のパラメータには環境が含まれます。だから、bashを呼び出す必要があるまで、そのコピーを保存してください。
私は環境を保存したくない、私はそれを破壊したい。 –
- 1. Twilio関数内から環境変数を呼び出すにはどうすればよいですか?
- 2. 私のCコードからC#DLLのメソッドを呼び出すにはどうすればいいですか?
- 3. 他のCプログラムの中からCプログラムを呼び出すにはどうすればいいですか
- 4. Cから新しいR環境を作成するにはどうすればよいですか?
- 5. C++ファイルからObjective Cヘッダーファイルを呼び出すにはどうすればよいですか?
- 6. C/C++プログラムから__strlen_sse2を呼び出すにはどうすればよいですか? [Linux]
- 7. C#から混在モードのC++/CLIアセンブリを呼び出すにはどうすればよいですか?
- 8. Unity(C#):List <int>を別のシーンから呼び出すにはどうすればいいですか?
- 9. c#他のプロジェクトからクラスを呼び出すにはどうすればいいですか?
- 10. C#でコンストラクタから別のコンストラクタを呼び出すにはどうすればよいですか?
- 11. C#で別のクラスから非静的メソッドを呼び出すにはどうすればよいですか?
- 12. クラスタ環境でゼロデイタイムデプロイメントを行うにはどうすればよいですか?
- 13. Win32環境のC++でntdll.dllからNt関数を呼び出す
- 14. 関数を呼び出すにはどうすればいいですか?
- 15. jqueryを呼び出すにはどうすればいいですか?
- 16. awakeFromNibを呼び出すにはどうすればいいですか?
- 17. JavaからCygwin CコンパイラGCCを呼び出すにはどうすればよいですか?
- 18. C++からmatlabメンバ関数を呼び出すにはどうすればよいですか?
- 19. LuaスクリプトからC++関数を呼び出すにはどうすればよいですか?
- 20. teambuildからmsbuildのバッチファイルからmsbuildを呼び出すにはどうすればいいですか?
- 21. dialogFragmentでonActivityCreatedが呼び出されないようにするにはどうすればいいですか?
- 22. Pythonコードから新しいシェルウィンドウでpythonスクリプトを呼び出すにはどうすればいいですか?
- 23. javascript関数からJavaクラスオブジェクトを呼び出すにはどうすればいいですか?(Out ajaxなし)
- 24. GAEフレキシブル環境でデータストアのAPI環境を登録するにはどうすればよいですか?
- 25. アクティビティでカスタムクラスを呼び出すにはどうすればよいですか?
- 26. レールコントローラでチャンネルメソッドを呼び出すにはどうすればよいですか?
- 27. サービスクラスでsupportFragmentMangerを呼び出すにはどうすればよいですか?
- 28. インスタンスでクラスメソッドを呼び出すにはどうすればよいですか?
- 29. MVCでコントローラアクションを呼び出すにはどうすればよいですか?
- 30. ベースクラスオブジェクトでサブクラスメソッドを呼び出すにはどうすればよいですか?
「login」のソースを調べましたか?それは私が見る最初の場所です。おそらく 'login'プログラムがあなたが推測することができない多くの事があります。 –
また、 'login'プログラムを完全に置き換える代わりに[' pam'モジュール](https://en.wikipedia.org/wiki/Pluggable_authentication_module)を書くことも考えられます。 –
@GregHewgill私はそれについて考えましたが、私はそれのソースを見つけることができませんでした。私はどこから始めるべきかわからない –