他のスーパーユーザーがファイルを変更、削除、または上書きできないように、どのような方法でもファイルを保護する方法はありますか?

他のスーパーユーザーがファイルを変更、削除、または上書きできないように、どのような方法でもファイルを保護する方法はありますか?

aを入力したときにsudo command fileファイルを変更、削除、または上書きできないようにロックするパラメータを設定する方法はありますか?他のスーパーユーザー

だけでなく:/home/announcements/お知らせを設定し、各ユーザーフォルダのホームフォルダに保存したいと思います。

各ユーザーのお知らせフォルダにファイルを挿入できるかどうかを調べるテスト。

これはまた、私がこれを行い、他の一般ユーザーとスーパーユーザーが私の個人ユーザー権限なしでそれを変更または削除することを無効にできるかどうかのテストです。

それでは、上記の状況は可能ですか?

たとえば、上記のヘルプを作成して保存すると、次の内容が追加されますか?

sudo chmod -rv 644 /home/*/announcements/announcement-1

〜または実行可能な場合〜

sudo chmod -rv 744 /home/*/announcements/announcement-1

メモ:難読症があり、時々翻訳もします。心からささやく実際の書面/音声言語に翻訳するのは私にとって難しいかもしれません。明確にする必要がある場合は、お知らせください。

答え1

  1. root すべてにアクセス可能したがって、「上級ユーザー」が意味するように、答えは「おそらく」または「いいえ」です。
  2. 一般ユーザーの場合は、次のことができます。

    chown root:root /home/*/announcements/announcement-1
    chmod a-wt /home/*/announcements/announcement-1
    chmod a+r /home/*/announcements/announcement-1
    

    1行ずつ表現される意味:
    a。掲示板の所有者をrootに変更します
    。 b。掲示板から書き込みビットと固定ビットを削除します
    。 c。全員に読み取りアクセス権のみを付与します。

注1:「スーパーユーザー」=「sudoアクセス権あり」定義の場合、答えは次のようになります。いいえ!(申し訳ありません!)他に何かがある場合:たぶん明確にしてください。

答え2

SELinuxのような多くの作業をせずに取得できる最も近い方法は、次のようにファイルを不変にすることです。

chattr +i /path/to/file

ファイルに不変フラグが設定されている場合、不変フラグを最初に設定解除しない限り、誰もファイルシステムレベル以上でファイルの書き込み、追加、移動、削除、または他の方法でファイルを変更することはできません。それでも2つの問題が残っている。

  • ルートアクセス権を持つ人が不変フラグを設定解除するのを防ぐ方法はありません。
  • ファイルが保存されているファイルシステムのストレージデバイスにアクセスする誰かがファイルデータを直接変更するのを防ぐ方法はありません。

SELinuxまたは他のMACシステムを考慮すると、次のことができます。おそらくやりたいことをやってください。しかし、それを達成するには多くの努力が必要です。

ただし、信頼できない人にrootアクセス権を付与してはいけません。

また、Windowsでもこれを行うことができないことに注目する価値があります。管理者アカウント(管理者としてリストされているアカウントではなく、実際の「管理者」アカウント)にアクセスできる人は、誰でもrootユーザーなどのほぼすべての権限チェックをバイパスできます。 UNIXシステムでは可能です。

答え3

いいえ、できません。

証明する:

  1. 最も明白なのは、スーパーユーザーがsu ev低レベルのシステムコールを実行するプログラムを実行、作成、実行できることです。その後、ユーザーができることをすべて実行できるので、「ロック解除」コマンドを実行できます。
  2. とにかくそうする必要さえありません。したがって、特定のコマンドをブロックしようとする必要はありません。su evこれはとにかく機能しないので意味がありません。ほとんど権限確認により、ユーザー0は他のユーザーが実行できるすべての操作を実行できます。いくつかの例外(FUSEファイルシステムへのアクセスなど)がありますが、ユーザーがrootになると、他のユーザーと同じようにコードを実行できます(1を参照)。

「スーパーユーザー」とは、コンピューターに対する管理権限を持つユーザーである「スーパーユーザー」を意味すると仮定します。不正行為をする方法はいくつかあります。

  • 自分のスーパーユーザー権限をスケジュールし、他の人がランダムなコード実行を許可しない特定の特定のコマンドにのみアクセスできるようにすることができます。たとえば、sudo rebootスーパーユーザー以外のユーザーとして実行できます。をsudo sh実行できるユーザーsudo teeまたはsudo mountスーパーユーザーです。
  • SELinuxなどの一部のセキュリティフレームワークでは、ユーザーIDが0(つまりroot)のアカウントへのアクセス設定を許可しますが、そのアカウントがroot以外のアカウントで実行できない操作を実行できないようにするいくつかの制限があります。権限のない人にユーザーID 0へのアクセス権を与えることは意味がないため、正しく設定するのは本当に難しく、実際にはほとんど意味がありません。
  • 仮想マシンまたはコンテナの他の人にスーパーユーザー権限を付与できますが、ホストに対するスーパーユーザー権限は自分だけに保持されます。

関連情報