実際にはrootに変更せずにopenSUSEでsudoを使用します(たとえば、Ubuntuと同様)。

実際にはrootに変更せずにopenSUSEでsudoを使用します(たとえば、Ubuntuと同様)。

数年間Ubuntuを使用した後、最近openSUSE 12.3の実験を始めました。私はまだopenSUSEがUbuntuとどのように機能するかsuに慣れています。 openSUSEのマニュアルを読んだが、2つの関連する質問に対する答えが見つかりませんでした。sudosudo

1)前の質問からhttps://askubuntu.com/questions/236859/are-there-adverse- effects-from-or-a-better-way-than-writing-to-run-or-dev-shgpg、復号化されたファイルがハードドライブに絶対に届かないように、このフラグを使用して復号化されたファイルを一時的に書き込む方法を尋ねました。しかし、書くにはUbuntuにいる必要があります。/rungpg --output/runsudosudo gpg --output '/run/temporary_file_name' etc.

openSUSEで同じ操作を実行しようとすると(sudoまたは使用su)エラーメッセージが表示されますgpg。おそらく、rootユーザーが私のユーザーアカウントのgpgキーを見ることができないからです。 sudo from Ubuntu, in whichsudo seems to use the same preferences / gpg keys as the regular user, be replicated in openSUSE? I could usegpgなどを使用できますか?ティーなどがあるようですが、Ubuntuの作業方法に比べると酷く見えます。

2)一部(すべてではない)行にroot権限を必要とするUbuntuの複数のbashスクリプトがあります(たとえば、rootが所有しないファイルをコピーし、root権限を必要とする新しいソフトウェアをインストールするなど)。 Ubuntuではsudo。これらのスクリプト行でsudo some_commandopenSUSEを使用するように調整する最善の方法は何ですか?スクリプトで単独で使用するsu -c 'command'と、ルートパスワードを入力してスクリプトの動作が停止します。su

openSUSEについて具体的に質問していますが、この質問はUbuntu以外の多くのディストリビューションに適用できます。

ベストアンサー1

sudoが環境変数を保持するのHOMEか、ターゲットユーザーのホームディレクトリに設定するのかは、その構成によって異なります(詳細はマニュアルを参照)。 Ubuntuが正しい、SuSEが間違っている、またはその逆ではありません。どちらのオプションにも長所と短所があります。シナリオ作家としてのあなたの使命は、両方の状況に対処することです。 (1)の解決策はgpgを実行sudo -Hまたは渡すことです--homedir

しかし、gpgをrootとして実行することは間違いなく間違ったアプローチです。これにより、gpgにあまりにも多くの権限が与えられ、アクセス権がある可能性があります~/.gnupg(たとえば、ユーザーのホームディレクトリがNFSにある場合など)。キーを所有しているユーザーとしてgpgを実行し、データを標準出力として印刷します。パイプラインアクセスtee書くために特別な権限が必要なファイルに出力する標準的な方法です(なぜ「不器用な」と思うのかわかりません)。

gpg -d foo.gpg | sudo tee /run/foo

ルートが必要かどうかsusudo、システム管理者の選択によって異なります。同じシステム上の他のユーザーがそのいずれかを使用できます。スクリプトを実行するすべてのシステムの構成を制御しない限り、両方の可能性を考慮してください(例:スクリプトにオプションを渡す)。

スクリプトはUbuntuで実行されますが、sudo他のディストリビューションでは失敗した場合は、su環境を(ほぼ)完全にリセットする必要があります。これはsudoUbuntuのデフォルト設定ですが、他のシステムでは異なる動作をする可能性があります。リセットされる環境に依存しないようにスクリプトを変更してください。

おすすめ記事