Windowsコマンド(cacls)

8-1-1.Windowsコマンド

今回はcalcsを使います。
ファイルのアクセス権の表示や変更をしてくれるコマンドです。
cmd上で、ヘルプから確認してみます。

Microsoft Windows [Version 10.0.17763.253]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\takk>cacls

 注意: CACLS の使用は推奨されていません。ICACLS を使用してください。

 ファイルのアクセス制御リスト (ACL) を表示または変更します。

 CACLS ファイル名 [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C]
                   [/G ユーザー名:アクセス権] [/R ユーザー名 [...]]
                   [/P ユーザー名:アクセス権 [...]] [/D ユーザー名 [...]]
    ファイル名     ACL を表示します。
    /T             現在のディレクトリとすべてのサブディレクトリにある
                   指定されたファイルの ACL を変更します。
    /L             ターゲットではなくシンボリック リンク自体で動作します
    /M             ディレクトリにマウントされたボリュームの ACL を変更します
    /S             DACL の SDDL 文字列を表示します。
    /S:SDDL        ACL を SDDL 文字列で指定されたもので置き換えます
                   (/E、/G、/R、/P、または /D では無効)。
    /E             ACL を置き換えずに編集します。
    /C             アクセス拒否エラーを無視して、アクセスを続行します。
    /G ユーザー名:アクセス権
                   指定されたユーザーにアクセス権を与えます。
                   アクセス権: R  読み取り
                               W  書き込み
                               C  変更 (書き込み)
                               F  フル コントロール
    /R ユーザー名
                   指定されたユーザーのアクセス権を失効させます
                   (/E オプションと共に使用)。
    /P ユーザー名:アクセス権
                   指定されたユーザーのアクセス権を置き換えます。
                   アクセス権: N  なし
                               R  読み取り
                               W  書き込み
                               C  変更 (書き込み)
                               F  フル コントロール
    /D ユーザー名  指定されたユーザーのアクセスを拒否します。
 複数のファイルを指定するには、ワイルドカードを使用できます。
 複数のユーザーを指定できます。

 省略形:
    CI - コンテナー継承。
         ACE はディレクトリに継承されます。
    OI - オブジェクト継承。
         ACE はファイルに継承されます。
    IO - 継承のみ。
         ACE は現在のファイル/ディレクトリに適用されません。
    ID - 継承済み。
         ACE は親ディレクトリの ACL から継承されました。

C:\Users\takk>

いきなり、「CACLS の使用は推奨されていません。」
と言われてしまいました、
ICACLSを使った方が良さそうなのですが、違いを知るためにも、まずはCACLSを使ってみます。


C:\Users\takk\Desktop>echo HELLO > test.txt

C:\Users\takk\Desktop>cacls test.txt
C:\Users\takk\Desktop\test.txt <アカウント ドメインが見つかりません>(ID)F
                               NT AUTHORITY\SYSTEM:(ID)F
                               BUILTIN\Administrators:(ID)F
                               DESKTOP-TRO4JUU\takk:(ID)F


C:\Users\takk\Desktop>

他のユーザにフルコントロールの権限を与えてみます。

C:\Users\takk\Desktop>net user

\\DESKTOP-TRO4JUU のユーザー アカウント

-------------------------------------------------------------------------------
Administrator            DefaultAccount           Guest
takkc                    takk                     testuser2
WDAGUtilityAccount
コマンドは正常に終了しました。


C:\Users\takk\Desktop>cacls test.txt /g testuser2:f
よろしいですか (Y/N)?y
処理ファイル: C:\Users\takk\Desktop\test.txt

C:\Users\takk\Desktop>

ファイルの権限を確認。

C:\Users\takk\Desktop>cacls test.txt
C:\Users\takk\Desktop\test.txt DESKTOP-TRO4JUU\testuser2:F


C:\Users\takk\Desktop>

あれ、testuser2にしか権限がついてません。
他のユーザの権限は消えてしまったのでしょうか。

一応、プロパティでも確認すると、

testusr2しか表示されません。

このファイルを削除しようとすると、もちろん。

つづく

コメント

タイトルとURLをコピーしました