Ubuntuに2人のsudoユーザーが存在する場合、ユーザーファイルはまだプライベートですか?


31

個人のUbuntu PCを同僚の1人と共有しています。

別のパスワード(もちろん知っている)で別のユーザーを作成し、sudoerリストに追加しました。

sudo単一のUbuntuシステムに2人のユーザーがいることを考えると:

  • これらのユーザーのプライベートファイル(所有者とアクセス許可で指定)はまだプライベートですか?

  • sudoコマンドを使用して同僚のファイルを変更することはできますsudo suか?



6
Ubuntuでは、ユーザーの作成時にホームフォルダーを暗号化できます。それがまさにここで必要な機能かもしれません。
するThorbjörnRavnアンデルセン


@ThorbjørnRavnAndersenホームフォルダーを暗号化しても、以前と同じように便利に内部のファイルにアクセスできますか?
地州黄

3
他のユーザーからsudoアクセスを削除して、あなたが唯一の管理者になりませんか?どのような理由から、他のユーザーのニーズがためにsudo彼らはsudoの(などの取り付け、印刷、自動更新、)必要はありませんので、あなたが修正することができます
Xen2050

回答:


51

あなたの同僚がsudoersリストに含まれている場合、彼はあなたが望むならあなたと同じくらいrootであり(そして彼もあなたになりすますことができます)、彼はすべてを見ることができます。

これは、ユーザーのプライバシーが必要な場合に設定できる最悪の設定です。Linuxでのユーザー管理の仕組みを明確に読む必要があります。ここから始めることができるいくつかの記事があります:

その場合でも、誰かが問題のマシンに物理的にアクセスしている場合、プライバシーはありません。ブート時にルートシェルにドロップして、何でも関係なくすべてを見ることができます。このようにしてください。

その場合の最良の方法は、適切なユーザー管理、ルートのパスワード、暗号化されたドライブおよび/または暗号化されたホームディレクトリです。


2
sudo -i動作しないことを確認してください:)
ウィルフ

3
sudoersの最も単純で一般的な構成は、ユーザーのリストに一時的にroot権限を付与することですが、sudoersではアクセスをきめ細かく制御できます。たとえば、ユーザーが特定のコマンドのみをルートとして実行できるように指定できます。ルートシェルの作成、または許可するコマンドの範囲を超えた永続的なルートアクセスの作成を許可しないコマンドの実行のみをユーザーに許可する場合は、一般的にルートアクセスを許可しないようにすることができます。
bgvaughan

19

簡単な代替方法は、個人データを暗号化されたファイルに保存することです(たとえばgpgで暗号化したtarアーカイブファイルなど)。クリアテキストファイルを見た後は、それらを上書きして削除することを忘れないでください。

コンピューターとsudo(ルート)アクセスを共有するすべてのユーザーの別の代替手段は、暗号化されたホームと暗号化されたスワップを使用することです。

ただし、同時にログインしている場合、これは役に立ちません。実際のところ、暗号化されたホームでもファイルをクリアテキスト形式で削除するには、コンピューターを再起動する必要があります。


一般に、セキュリティは非常に難しく、暗号化されたディスク(暗号化されたLVM)を備えたシングルユーザーシステムは、物事を安全に保つための最も簡単な方法です。

  • 機密の個人データを共有コンピューターに保存しないでください
  • 雇用主に属するコンピューターに個人データを保存しないでください

3
dm-crypt / LUKSコンテナーは、クリアテキストファイル(アプリケーションの一時ファイルとスワップを除く)、または単一の暗号化された〜/ .Privateディレクトリを上書きすることを心配する必要はありませんecryptfs-mount-private
-Xen2050

6
これは邪悪なメイド攻撃からあなたを保護することさえしません:他のsudoユーザーはあなたのパスフレーズを与えるようにあなたをだますためにシステムを変えることができます。そのような質問は、「同僚がロシアのスパイであると疑っています。自分のコンピューターで彼にsudo権限を与えるべきですか?」と読む必要があります。
sleblanc

暗号化されたディスクイメージを持つ仮想マシンはどうですか?blogs.oracle.com/scoter/...
leftaroundabout

1
プライバシーが必要な場合は、シングルユーザーシステムが必要です。つまり、他のユーザーはいません。他のsudoユーザーもいません。暗号化システムを備えたUbuntu LVMは、邪悪なメイド攻撃に対して脆弱です。それでも、暗号化されたホームを含む他の簡単な代替手段よりも優れていると思います。もちろん、必要に応じて、暗号化されたディスクと暗号化されたホームとシングルユーザーシステムを使用して、侵入者にとって物事を難しくすることができます。たとえば、このリンク iso.qa.ubuntu.com/qatracker/milestonesに従って/ 363 /ビルドします/ 126342 / ...
sudodus

新しいrootユーザーが行う必要があるのは、diamorphineのようなカーネルスペースルートキットをインストールすることだけです。ユーザーランドのLD_PRELOADハッキングをいじる必要さえありません:単純なキーストロークロガーを作成し、Pythonスクリプトに投げて、タイピングの時間/グループ化に基づくファジーなK-meansセグメンテーション、およびテキスト解析を行います。できた。これで、ユーザーのパスフレーズが手に入り、個人データを入手できるようになりました。
クラウド

8

あなたが得ることができたらroot(例えば使用許可をsudosuなど)。
システム上のすべてのファイルにフルアクセスできます。

そのため、sudoアクセス許可を持ち、root使用できるようになったユーザーの両方がsudo bash、システム上のすべてのファイルに完全にアクセスできます。

このQ&Aによるとアクセスを制限するために(Ubuntuではない)SE-Security変更できるSELinux場合がありrootます。

あなたの質問が「私は今これを簡単かつ安全にできますか?」答えはいいえだ。あなたの答えが「私はSELinuxについて学ぶ準備ができており、私のディストリビューションを使いこなして、機能しない多くのものに我慢する」という答えなら、あなたの平均インストールよりもはるかに多くのルートを制約することが可能です。とは言っても、これにより悪用されないようにすることはできません。ユーザーがソフトウェアまたは物理的にこの追加のアクセス制御を回避することは不可能ではありません。


2
rootをapparmorとselinuxの両方で制限できますが、完全なrootアクセスまたはリカバリシェルまたはライブCDを介してアクセスできる人は、いずれかのシステム(apparmorまたはselinux)で元に戻すことができます。
パンサー

1
SELinuxなどを使用してrootが直接実行できることを制限しても、ユーザーが自分で実行するユーティリティを変更できる場合があります。そして、彼らはすべてのアップグレードを実行することができるようになっている場合、彼らはシステム上のバイナリを変更するためのアクセスを必要があります...
ilkkachu

5

他の回答がすでに完全に述べていることを明確にするために:その他のユーザーは「あなたと同じくらいルート」(Videonauthの回答)であるだけでなく、あなたになることもできます(ユーザーアカウントに切り替えます)

これは、スーパーユーザー特権を使用すると、任意のアカウントに切り替えることができるためです。

おそらく知っている

sudo su

これは、rootにパスワードが設定されていない場合にrootシェルを開くオプションの1つです(したがって、rootとして直接ログインすることはできません)。

su「ユーザーの切り替え」の略です。どのユーザーに切り替えますか?何も明記されていませんよね?しかし、manページから次のことがわかります。

ユーザー名なしで呼び出された場合、suはデフォルトでスーパーユーザーになります。

これは事実上

sudo su root

root他の名前に変更しなかった場合。

を実行したばかりの場合su <someuser>、パスワードの入力を求められます。したがって、実行するとsu root、rootのパスワードの入力を求められます(デフォルトではUbuntuには存在しないため、ログインできません(パスワードが設定されていないことは、パスワードを介してログインする手段がないことを意味します空の文字列であるパスワードとは異なります))。ただし、を実行するとsudo su root、独自のパスワードの入力を求められます。そして、あなたはそれのためだけに促されsudoます。一度sudoパスワードを受け取った、それがスーパーユーザー権限を持つパラメータとして受け取ったコマンドを実行します。スーパーユーザー特権を持っている場合は任意のアカウントに切り替えることができるため、パスワードプロンプトは必要ありません。

だから実行することにより

sudo su <yourusername>

、他のsudoerはあなたとしてログインできます。


+1; はい、混乱を引き起こさないためにこれを言及しませんでした、機械を適切に保護する分野は広​​く、あなたが苦労することができる石で満たされています。回答として既に提供されているものにまだ良い追加。
Videonauth

確かではありませんが、sudo su常にデフォルトでUID 0とGUID 0になっているわけではありませんか?「はい」の場合、「ルート」の名前はどうでもかまいません。
Videonauth

@Videonauth 2番目のコメントの2番目の文は正しいです。しかし、これが、あなたが批判している文を含めたまさにその理由です。名前rootjohnに変更すると、sudo suはに等しくなりsudo su john、にはなりませんsudo su root
UTF-8

3

sudoersファイル(/etc/sudoers)を編集することにより、sudo特権エスカレーションを使用して実行できるプログラムを制限することができます。

詳細についてはスーパーユーザーに関するこの質問に対する受け入れられた回答を参照してください。UnixおよびLinuxについてはこちらも参照してください。の特権の制限に関する提案については、slm回答を参照してください/etc/sudoers

また、sudoers manページを入力して確認し、man sudoersテストすることを忘れないでください。制限のないsudoアクセスでは、ユーザーは他のユーザーに完全になりすますことができます。たとえば、ユーザーfooがコマンドを実行する場合

sudo exec su - bar

その後、それらのbarユーザーのすべての特権を使用して、ユーザーとして動作できるようになります。


6
slmおよびmtakの回答にsudoers示されている特定の行はコマンドを実行するのが簡単であるため、一部のアクションを実行でき、他のアクションは実行できないため、機能しません。(理由の詳細な説明については、それぞれの回答のコメントを参照してください。)この回答は、ユーザーを効果的に管理者にせずにrootとして特定のコマンドを実行できるようにすることができるため、厳密に間違っているわけではありません。しかし、これを正しくすることは非常に困難です。sudo
エリアケイガン

@EliahKaganそうです。コマンドを実行できるメカニズムに到達できないように注意する必要があります。もちろん、それはあなたが他の人に置く信頼のレベルに依存します。

1
@EliahKaganしたがって、manページを読み、実装をテストするように勧めています。sudo特権を持つユーザーを制限することは可能です。ただし、指摘しているように、これは完全に安全なソリューションではなく、sudo権限を付与されたユーザーにある程度の信頼を付与する必要があります。sudoコマンドのスコープを制限するために特別に設計されたメカニズム(sudoersファイルエントリ)の使用を推奨する回答のダウン票を見るのは興味深いです。
チャーマー

組み込みのメカニズムを使用することは推奨事項ではないと思うので、回答のためにどのような建設的な批評をすることができるのかを説明しましょう。1)いくつかのタイプミスが含まれており、フォーマットが不十分で、読むと奇妙に見えますが、それ自体は非常に簡単に修正できます。2)Ask Ubuntu以外で与えられた他の回答を指します。ここでは、重要な部分をブロック引用符としてここに投稿し、リンクを引用符の一部にして、それらの引用元を示します。これがあなたの答えの改善に役立つことを願っています。
Videonauth

そして、以前のコメントで文字がなくなったので、3)説明をもう少し深くすることができます。@ EliahKaganが述べた警告を指摘してください。
Videonauth

0

encrypt home folderUbuntuのインストール中にマークを付けた場合、以前の回答は完全には適用されません。これにより、rootがそのホームフォルダーのユーザー/所有者の適切なパスワードなしではデータを読み取れない場合でも、すべてのユーザーのホームフォルダーが暗号化されます。同僚は、ファイルを読み取るためにパスワードを変更する必要があります。

そしてもちろん、人々は正しいです。貴重なデータや機密データを備えたマシンを共有し、その上に同僚とルートアクセスすることは、良い考えではありません。

このデータの値に応じて、マシンを所有することをお勧めします。


1
これは、「犠牲者」がログオンし、暗号化されたドライブをマウントするとすぐに、rootユーザーが「su-」または同様の操作を行うことを妨げない場合があります。発生する。また、rootユーザーは、パスワード入力を処理するバイナリを簡単に置き換えて、暗号化されたホームディレクトリのロックを解除し、クリアテキストパスワードを保存するバージョンに切り替えて待機することができます。このような攻撃を阻止するセキュリティメカニズムは、被害者が使用するバイナリを希望どおりに変更することで活用できます。
rackandboneman

5
暗号化されたホームディレクトリは、現在ログインしていない場合にのみ役立つので、この答えを否定しています。ログインするとすぐに、データが復号化され、sudoアクセスを持つ他のユーザーが利用できるようになります。
パンサー

2
しかし、なぜ彼らはそうしなければならないのでしょうか?同時ログインがリモート(SSHなど)または仮想コンソールで行われない場合でも、2人のユーザーを同時にグラフィカルにログインして、切り替えることはできませんか?私はLubuntu(LXDEを使用)を使用していますが、複数のユーザーで同時にグラフィカルにログインすることはありませんが、より多くの機能が豊富なデスクトップ環境がこれを数年間サポートしており、デフォルトで有効にしているように感じました。私はそれについて間違っていますか?または、画面がロックされているときに、ファイルがルートによって復号化されて読み取れないようになりましたか?
エリアケイガン

2
IRRCユーザー暗号化キーは、暗号化と復号化を提供するためにマシンにオープンに保存されるためsudo su - <username>、他のユーザーのパスワードを必要としない場合、通常は他のユーザーのディレクトリを正常に復号化します。しかし、私はここで間違っている可能性があり、VMでそれをテストする必要があり、後でそれを行います。とにかく、これはすべてのケースの99%で発生します:「私があなたのマシンに物理的にアクセスできるなら、あなたはうんざりしています!」。
Videonauth

1
スーパーユーザーは、ログイン手順を変更して、表示されるユーザー名とパスワードを記録できます。他のユーザーがログインし、問題が解決するまで待ちます。
スティグヘマー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.