Bo2SS

Bo2SS

ファイルの特殊な権限の一般的な使用シーン

実験環境: Ubuntu18.04 リモートサーバー + WSL 2 ローカル

評価の説明#

[バージョン 1]

  • 画像

[バージョン 2]

  • 画像
  • ⭐ファイルの権限【特に特殊権限】の理解を評価します

  • 上記を理解したら、上記の機能を簡単に実装できます

最終的な効果#

  • 他のユーザーは Project ディレクトリにアクセスできません

  • 画像
  • TestUser1 が u1.txt というファイルを作成しました

  • 画像
  • TestUser2 は u1.txt を編集することはできますが、削除することはできません

  • 画像
    • 逆も同様です

実装手順#

準備作業#

  • TestGroup というグループを作成し、groupadd コマンドを使用して作成します。いくつかのオプションは man ページで確認できます
groupadd TestGroup
  • TestGroup グループに属する TestUser1 と TestUser2 という 2 つのユーザーを作成します
useradd -G TestGroup TestUser1
useradd -G TestGroup TestUser2
    • グループを作成する前にユーザーを作成する必要があります
  • ログインパスワードを設定します。設定しないとユーザーにログインできません
passwd TestUser1
--->パスワードを入力:xxx
passwd TestUser2
--->パスワードを入力:yyy
  • /opt ディレクトリに Project ディレクトリを作成し、プロジェクトディレクトリとして使用します
cd /opt
mkdir Project

機能 1 の実装 ディレクトリへのアクセス権限#

【TestUser1、TestUser2、root の 3 つのユーザーのみがこのディレクトリにアクセスできます】

  • Project ディレクトリのグループを TestGroup に変更し、所有ユーザーは変更しません
sudo chown :TestGroup Project
  • 他のユーザーの実行権限を削除し、他のユーザーはディレクトリにアクセスできなくなります
sudo chmod o-x Project
  • 効果は以下の通りです:

  • 画像

機能 2 の実装 編集権限#

【TestUser1 が作成したファイルは TestUser2 が編集できます】

  • まず、TestGroup グループに書き込み権限を追加します。これにより、ユーザーはこのディレクトリ内でファイルを作成できます
sudo chmod g+w Project
  • set_gid を設定すると、ユーザーがディレクトリに入った後の操作はディレクトリの所属グループの身分で行われます
sudo chmod g+s Project

[PS] そうしないと、ユーザーが作成したファイルの所属グループは自分と同じ名前のグループになりますが、TestGroup ではありません [したがって、2 つのユーザーを関連付けることはできません]

  • 権限は以下の通りです:

  • 画像

機能 3 の実装 削除権限#

【TestUser1 と TestUser2 は自分が作成したファイルのみ削除できます】

  • sticky bit を設定すると、ユーザーは自分が作成したコンテンツのみを削除できます
sudo chmod +t Project
  • 権限は以下の通りです:

  • 画像

[PS] フォルダの色が変わりましたが、zsh がうまくやりました


考えるポイント#

  • シナリオ:特定のディレクトリにアクセス権限がないユーザーがファイルを削除できるのはなぜですか?
    • 画像
    • ファイルの削除権限:削除権限は、ユーザーがアクセスしたディレクトリの権限に優先します

追加情報#

  • ディレクトリの実行権限はアクセス権限を表します

参考資料#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。