web-dev-qa-db-ja.com

cacls.exeを使用してACLを再帰的に変更するにはどうすればよいですか?

workディレクトリ内のeverythingへのアクセスを私とシステムのみに制限したいと思います。私は次のコマンドでこれを試しました:

cacls.exe work /t /p 'PIXLA09\Maaartin:f' 'NT AUTHORITY\SYSTEM':f

ただし、まったく機能しません。次のコマンドは、指定された2人のユーザーのみを表示する必要がありますが、代わりに非常に長い権限のリストを表示します。

cacls.exe work/somedirectory

/gの代わりに/pも使おうとしました。 /eを使用しなかったため、権限を編集するのではなく、置き換える必要があります。

何が問題なのですか?

5
maaartinus

最初のコマンドラインに小さなエラーがある可能性があります。 :fは引用符の外側にある必要があります。また、二重引用符ではなく一重引用符を使用しているようです。私がそれを試したとき、それはうまくいきませんでした。

このコマンドラインは私にとっては問題なく機能しました:

cacls test /t /g "computername\sahmeepee":f "system":f

またはあなたの名前を使用して:

cacls work /t /g "PIXLA09\Maaartin":f "system":f

もう1つの考えられる問題は、caclsコマンドが権限の変更を適用しているように見える奇妙な順序です。上記のコマンドを実行したが、自分のアカウントの代わりに他の人のアカウントにアクセス許可を付与した場合、ディレクトリ「test」のみが影響を受け、そのサブディレクトリは影響を受けません。これは、コマンドが下からではなく上から下に変更を加えるように見えるため、サブディレクトリのACLを編集する場合、コマンドに権限がなくなったためです。

1
sahmeepee