Solaris 10では、sudoを介してコマンドを実行し、2つの環境変数をコマンドに渡す必要があります。これは/bin/sh
、いいえbash
、いいえで実行する必要がありますksh
。
これはLinuxで可能であり、いくつかのオプションがありますが、SolarisはLinuxでスイッチをサポートsudo
していないため、Solarisでは機能しません。-E
最新バージョンのsudoをインストールすることも実際にはオプションではありません。
私が考えることができる唯一の回避策は、コマンドを変数とともにスクリプトに入れることです。
#!/bin/sh
a=foo
b=bar
export a
export b
my_command
その後、sudoを介してスクリプトを実行します。ただし、この方法ではsudoを介してスクリプトを許可する必要があるため、セキュリティをバイパスします。これはスクリプトを編集できるため、実際に付与することを制御できないため、悪い習慣です。
どんなアイデアがありますか?
編集:渡す変数はLD_PRELOAD LD_LIBRARY_PATHです。 sudoを介したコマンドは単一目的のchrootで実行されたため、変数が参照するライブラリを標準の場所にコピーして、一部の「システム」ライブラリを上書きすることができました。これは一般的に良い習慣ではありませんが(私は強くお勧めしません)、この場合、単一目的のchrootが実用的な解決策であることがわかりました。