
最新の Ubuntu 17.04 がインストールされていましたが、sudo nautilus コマンドを実行できず、エラーが発生していました。その後、Google で検索し、sudo -E nautilus を試したところ、うまくいきました。両者の違いは何ですか。
答え1
のsudo
マニュアルページ次のように説明しています-E
。
ユーザーが既存の環境変数を保持することをセキュリティ ポリシーに示します。ユーザーに環境を保持する権限がない場合、セキュリティ ポリシーはエラーを返すことがあります。
通常、 は、sudo
実行するコマンドに提供する環境をクリーンアップし、-E
それを無効にします (ユーザーが許可されている場合)。sudo env
との出力を比較すると、違いがわかりますsudo -E env
。
Nautilus は、必要な情報を見つけたり、通信する必要がある他のプロセスにアクセスしたりするために、いくつかの環境変数を必要としますが、デフォルトのクリーンアップにより、これが機能しなくなります。