さまざまな処理を行うスクリプトがありますが、そのほとんどは特別な特権を必要としません。ただし、関数内に含まれている特定のセクションには、ルート権限が必要です。
スクリプト全体をルートとして実行する必要はありません。スクリプト内からルート権限でこの関数を呼び出すことができるようにしたいと考えています。とにかくインタラクティブであるため、必要に応じてパスワードを要求することは問題ではありません。ただし、を使用しようとするとsudo functionx
、次のようになります。
sudo: functionx: command not found
予想通り、export
違いはありませんでした。いくつかの理由で、関数を分割して個別のスクリプトとして実行するのではなく、スクリプト内で関数を直接実行できるようにしたいと思います。
関数を抽出せずにsudoに「表示」し、適切なディレクトリを見つけて、それをスタンドアロンスクリプトとして実行する方法はありますか。
この関数はそれ自体が1ページの長さであり、二重引用符と単一引用符で囲まれた複数の文字列を含んでいます。また、メインスクリプトの他の場所で定義されているメニュー関数にも依存しています。
sudo ANYを持っている人だけが関数を実行できると期待します。それは、パスワードを変更することの1つです。
declare
それらを含む、すべてのそのような依存関係(および、存在する場合はそのすべての依存関係も...多くのレベルまで)を見つける必要があります。