Solaris 10でsudoを介して環境変数を渡す

Solaris 10でsudoを介して環境変数を渡す

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が実用的な解決策であることがわかりました。

ベストアンサー1

おすすめ記事