数年間Ubuntuを使用した後、最近openSUSE 12.3の実験を始めました。私はまだopenSUSEがUbuntuとどのように機能するかsu
に慣れています。 openSUSEのマニュアルを読んだが、2つの関連する質問に対する答えが見つかりませんでした。sudo
sudo
1)前の質問からhttps://askubuntu.com/questions/236859/are-there-adverse- effects-from-or-a-better-way-than-writing-to-run-or-dev-shgpg
、復号化されたファイルがハードドライブに絶対に届かないように、このフラグを使用して復号化されたファイルを一時的に書き込む方法を尋ねました。しかし、書くにはUbuntuにいる必要があります。/run
gpg --output
/run
sudo
sudo gpg --output '/run/temporary_file_name' etc.
openSUSEで同じ操作を実行しようとすると(sudo
または使用su
)エラーメッセージが表示されますgpg
。おそらく、rootユーザーが私のユーザーアカウントのgpgキーを見ることができないからです。 sudo from Ubuntu, in which
sudo seems to use the same preferences / gpg keys as the regular user, be replicated in openSUSE? I could use
gpgなどを使用できますか?ティーなどがあるようですが、Ubuntuの作業方法に比べると酷く見えます。
2)一部(すべてではない)行にroot権限を必要とするUbuntuの複数のbashスクリプトがあります(たとえば、rootが所有しないファイルをコピーし、root権限を必要とする新しいソフトウェアをインストールするなど)。 Ubuntuではsudo
。これらのスクリプト行でsudo some_command
openSUSEを使用するように調整する最善の方法は何ですか?スクリプトで単独で使用する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
ルートが必要かどうかsu
はsudo
、システム管理者の選択によって異なります。同じシステム上の他のユーザーがそのいずれかを使用できます。スクリプトを実行するすべてのシステムの構成を制御しない限り、両方の可能性を考慮してください(例:スクリプトにオプションを渡す)。
スクリプトはUbuntuで実行されますが、sudo
他のディストリビューションでは失敗した場合は、su
環境を(ほぼ)完全にリセットする必要があります。これはsudo
Ubuntuのデフォルト設定ですが、他のシステムでは異なる動作をする可能性があります。リセットされる環境に依存しないようにスクリプトを変更してください。