個人のUbuntu PCを同僚の1人と共有しています。
別のパスワード(もちろん知っている)で別のユーザーを作成し、sudoer
リストに追加しました。
sudo
単一のUbuntuシステムに2人のユーザーがいることを考えると:
これらのユーザーのプライベートファイル(所有者とアクセス許可で指定)はまだプライベートですか?
sudo
コマンドを使用して同僚のファイルを変更することはできますsudo su
か?
個人のUbuntu PCを同僚の1人と共有しています。
別のパスワード(もちろん知っている)で別のユーザーを作成し、sudoer
リストに追加しました。
sudo
単一のUbuntuシステムに2人のユーザーがいることを考えると:
これらのユーザーのプライベートファイル(所有者とアクセス許可で指定)はまだプライベートですか?
sudo
コマンドを使用して同僚のファイルを変更することはできますsudo su
か?
回答:
あなたの同僚がsudoersリストに含まれている場合、彼はあなたが望むならあなたと同じくらいrootであり(そして彼もあなたになりすますことができます)、彼はすべてを見ることができます。
これは、ユーザーのプライバシーが必要な場合に設定できる最悪の設定です。Linuxでのユーザー管理の仕組みを明確に読む必要があります。ここから始めることができるいくつかの記事があります:
その場合でも、誰かが問題のマシンに物理的にアクセスしている場合、プライバシーはありません。ブート時にルートシェルにドロップして、何でも関係なくすべてを見ることができます。このようにしてください。
その場合の最良の方法は、適切なユーザー管理、ルートのパスワード、暗号化されたドライブおよび/または暗号化されたホームディレクトリです。
sudo -i
動作しないことを確認してください:)
簡単な代替方法は、個人データを暗号化されたファイルに保存することです(たとえばgpgで暗号化したtarアーカイブファイルなど)。クリアテキストファイルを見た後は、それらを上書きして削除することを忘れないでください。
コンピューターとsudo(ルート)アクセスを共有するすべてのユーザーの別の代替手段は、暗号化されたホームと暗号化されたスワップを使用することです。
ただし、同時にログインしている場合、これは役に立ちません。実際のところ、暗号化されたホームでもファイルをクリアテキスト形式で削除するには、コンピューターを再起動する必要があります。
一般に、セキュリティは非常に難しく、暗号化されたディスク(暗号化されたLVM)を備えたシングルユーザーシステムは、物事を安全に保つための最も簡単な方法です。
ecryptfs-mount-private
LD_PRELOAD
ハッキングをいじる必要さえありません:単純なキーストロークロガーを作成し、Pythonスクリプトに投げて、タイピングの時間/グループ化に基づくファジーなK-meansセグメンテーション、およびテキスト解析を行います。できた。これで、ユーザーのパスフレーズが手に入り、個人データを入手できるようになりました。
あなたが得ることができたらroot
(例えば使用許可をsudo
、su
など)。
システム上のすべてのファイルにフルアクセスできます。
そのため、sudo
アクセス許可を持ち、root
使用できるようになったユーザーの両方がsudo bash
、システム上のすべてのファイルに完全にアクセスできます。
のこのQ&Aによると、アクセスを制限するために(Ubuntuではない)SE-Security
変更できるSELinux
場合がありroot
ます。
あなたの質問が「私は今これを簡単かつ安全にできますか?」答えはいいえだ。あなたの答えが「私はSELinuxについて学ぶ準備ができており、私のディストリビューションを使いこなして、機能しない多くのものに我慢する」という答えなら、あなたの平均インストールよりもはるかに多くのルートを制約することが可能です。とは言っても、これにより悪用されないようにすることはできません。ユーザーがソフトウェアまたは物理的にこの追加のアクセス制御を回避することは不可能ではありません。
他の回答がすでに完全に述べていることを明確にするために:その他のユーザーは「あなたと同じくらいルート」(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はあなたとしてログインできます。
sudo su
常にデフォルトでUID 0とGUID 0になっているわけではありませんか?「はい」の場合、「ルート」の名前はどうでもかまいません。
root
をjohn
に変更すると、sudo su
はに等しくなりsudo su john
、にはなりませんsudo su root
。
sudoersファイル(/etc/sudoers
)を編集することにより、sudo特権エスカレーションを使用して実行できるプログラムを制限することができます。
詳細についてはスーパーユーザーに関するこの質問に対する受け入れられた回答を参照してください。UnixおよびLinuxについてはこちらも参照してください。の特権の制限に関する提案については、slmの回答を参照してください/etc/sudoers
。
また、sudoers man
ページを入力して確認し、man sudoers
テストすることを忘れないでください。制限のないsudoアクセスでは、ユーザーは他のユーザーに完全になりすますことができます。たとえば、ユーザーfoo
がコマンドを実行する場合
sudo exec su - bar
その後、それらのbar
ユーザーのすべての特権を使用して、ユーザーとして動作できるようになります。
encrypt home folder
Ubuntuのインストール中にマークを付けた場合、以前の回答は完全には適用されません。これにより、rootがそのホームフォルダーのユーザー/所有者の適切なパスワードなしではデータを読み取れない場合でも、すべてのユーザーのホームフォルダーが暗号化されます。同僚は、ファイルを読み取るためにパスワードを変更する必要があります。
そしてもちろん、人々は正しいです。貴重なデータや機密データを備えたマシンを共有し、その上に同僚とルートアクセスすることは、良い考えではありません。
このデータの値に応じて、マシンを所有することをお勧めします。
sudo su - <username>
、他のユーザーのパスワードを必要としない場合、通常は他のユーザーのディレクトリを正常に復号化します。しかし、私はここで間違っている可能性があり、VMでそれをテストする必要があり、後でそれを行います。とにかく、これはすべてのケースの99%で発生します:「私があなたのマシンに物理的にアクセスできるなら、あなたはうんざりしています!」。