web-dev-qa-db-ja.com

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

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

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

単一のUbuntuシステムに2人のSudoユーザーがいると仮定します。

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

  • Sudoコマンド、Sudo su、またはその逆を使用して同僚のファイルを変更できますか?

31
Jizhou Huang

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

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

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

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

52
Videonauth

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

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

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


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

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

root権限を取得できたら(たとえば、Sudosuなどを使用して)。
システム上のすべてのファイルにフルアクセスできます。

そのため、Sudoパーミッションを持ち、rootになったユーザーは、Sudo bashを使用してシステム上のすべてのファイルにフルアクセスできます。

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

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

8
Yaron

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

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

おそらく知っている

Sudo su

これは、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はあなたとしてログインできます。

5
UTF-8

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

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

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

Sudo exec su - bar

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

3
charmer

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

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

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

0
s1mmel