web-dev-qa-db-ja.com

読み取りアクセスを取り消した後、icaclsを含むグループをファイルから削除できないのはなぜですか?

アカウントから読み取り権限があり、Administratorsグループに属していて、管理者特権のコマンドプロンプトからicaclsを実行しているにもかかわらず、読み取り権限が拒否されている場合、ファイルからグループを削除できないのはなぜですか?

これにより、「ユーザー」グループが正常に削除されます。

copy a b
icacls b /inheritance:d
icacls b /remove:g "Users"

結果:ファイルには「Users」グループがなくなりました。

しかし、読み取りアクセスを削除すると、icaclsでグループを削除できなくなります。

copy a b
icacls b /inheritance:d
icacls b /deny "Users":r
icacls b /remove:g "Users"

結果:ファイルにはまだ「Users」グループがあります。

これを回避するには、最初にグループに「完全な」権限を付与してから、/removeを使用してグループが削除されることを保証する必要があります。しかし、特定のグループが簡単にフルアクセスできるため、これは脆弱性のように感じます。

1
Zhro

間違ったスイッチを使用しています。 /remove:dを使用する必要があります:

icacls b /remove:d "Users"

グループがアクセス許可を拒否された場合、/remove:gスイッチが削除する権限はありません。

または、グループに割り当てられているany権限を削除するには、許可されているか拒否されているかに関係なく、次を使用します。

icacls b /remove "Users"

概要

  • /remove:g(G)許可されている権利を削除します
  • /remove:d(D)拒否された権利を削除します
  • /removeはすべての権利を削除します

Icaclsスイッチの詳細については、 TechNet を参照してください。