
数年間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のデフォルト設定ですが、他のシステムでは異なる動作をする可能性があります。リセットされる環境に依存しないようにスクリプトを変更してください。
答え2
これは主に質問1に対する答えです。他の質問は今すぐ答える時間がない別の質問だからです。
Ubuntuは、完全な権限の分離に伴う追加の複雑さを望ましくない、または必要としない一般的なデスクトップユーザーの注目を集めるために、セキュリティにいくつかの近道を使用します。ただし、ディスクに書き込めないほど機密性の高いデータを処理する場合は、そのようなユーザーではなく、sudo
Ubuntuスタイルの規則を実装して標準のセキュリティアーキテクチャをバイパスしないでください。
警告する:RAMに何かを入れたとしても、他の人がその項目にアクセスできないわけではありません。最も明白な原因はディスクスワッピングで、RAMの内容が無期限に保存される可能性があります。 しかし、他の妥協も可能です。
したがって、スワップパーティションを無効にしてこれで十分だと思う場合:
/runに書き込むよりも優れたオプションは、それを使用するユーザーが所有する独自のtmpfsマウントを作成することです。たとえば、ユーザーIDとグループIDの両方が500の場合:
mount -t tmpfs tmpfs /home/jl/realtmp -ouid=500,gid=500
このコマンドは、次のように実行する必要がありますroot
。fstab
tmpfs /home/jl/realtmp tmpfs uid=500,gid=500 0 0
答え3
sudoを有効にします。これは、/ etc / sudoersファイルを編集し、user ALL =(ALL)ALL行を追加することによって行われます。希望のユーザーと。これはrootとして実行する必要があります。