2008年2月21日木曜日

XPでコマンドラインからアクセス権を変更する cacls のメモ

[ /G 又は /P ] ユーザー名:N
を /E オプションなしで使ってはいけない。
これをすると、Adminからも変更(アクセス)できなくなる。
これを使う場合 /G のみで行う事とし、/E オプションも必ず付ける事。
そうしないと面倒な事になる。
PC初心者はアクセス権を追加するだけ(必ず /E オプション付ける)にする。

ユーザー名以外に「Administrators , Users , Power Users 」等のグループ名で指定する事も出来る。




■ オプションの説明

/G オプション
/g オプションは、「Users:R」が既にあった場合、「Users:W」を /g オプションで追加すると、「Users:R」に「Users:W」が追加される(ACLの追加。RとWの合成)。

/P オプション
/p オプションは、後に指定したアクセス権(上記の場合「Users:W」)のみに変更される(ACLの置き換え)。

/G と /P の違い
R の後に W を /G で追加すると R と W となる。
R の後に W を /P で追加すると W のみとなる。

/E オプション
これを付けないと既存の ACL は削除され、新たに指定したものだけとなる。
「 Administrators:F 」以外で指定する場合、必須オプションと言っても過言ではない。
・アクセス権 変更前の ACL
BUILTIN\Administrators:F
BUILTIN\Users:R
これを /E なし・あり とでそれぞれ実行した結果。
変更内容は「 /P Users:F 」。
・/E なし
BUILTIN\Users:F
・/E あり
BUILTIN\Administrators:F
BUILTIN\Users:F

/D オプション
アクセスされたくないユーザーを指定できる。
・使用例
cacls * /e /d ユーザー名
/E オプション必須(付け忘れると誰もアクセス出来なくなる)。
/P オプションの「:N」と同じだが、/D で指定した方がコマンドを使う側にとっては分かり易いし、記述が僅かながら短いというのがある。
/P オプションで拒否指定する場合も /E オプション必須である

/R オプション
指定したユーザーのアクセス権を失効(削除)。
/E オプションが付いてないと機能しない。
・使用例
cacls testfile.txt /e /r Users
・実行前
BUILTIN\Administrators:F
BUILTIN\Users:F
・実行後
BUILTIN\Administrators:F

/T オプション
現在のディレクトリ、又は指定のディレクトリ以下全てにアクセス権の変更を適用。

■ 【アクセス権別 アクセス調査】[ フォルダ名 /P ユーザー名:アクセス権 ] で変更後のアクセス調査

自・・・アクセス権を変更したフォルダ
他・・・デフォルトアクセス権のファイル・フォルダ
ユーザー名:R【読み取り】
 読み取り[o],フォルダ名の変更[o]
 自へ他のコピー[x],他へ自のコピー[o]
 自へ他の移動[x],他へ自の移動[o]
ユーザー名:W【書き込み】
 読み取り[x],フォルダ名の変更[o]
 自へ他のコピー[o],他へ自のコピー[x]
 自へ他の移動[o],他へ自の移動[△](自が置かれたドライブ間でのみ移動可)
ユーザー名:C 【変更】
 読み取り[o],フォルダ名の変更[o]
 自へ他のコピー[o],他へ自のコピー[o]
 自へ他の移動[o],他へ自の移動[o]
※自へ他のコピーはコマンドから実行。
移動可能なものは移動後のアクセス権は置き換わる。
CとFの違いが分かりません。知っている方はコメントください。

■ cacls 使用例

c:\> cacls D: /T /E /G Users:F "Power Users":F
Users と Power Users がDドライブ以下全てにフルアクセス可能
c:\> cacls "Program Files" /T /E /G Users:F
Usersグループが C:\Program Files フォルダ以下全てにフルアクセス可能



-- 追記 --
1. Posted 2008年02月22日 22:43
    ま、こんなことしてもLinuxから読めてしまうま。

2. Posted 2008年02月26日 18:49
    ↓のようなアクセス権のディレクトリ(hoge)の場合、
    BUILTIN\Administrators:F
    BUILTIN\Users:F
    Everyone:F

    Everyone:F だけ消そうと、
    cacls hoge /e /d Everyone
    とすると危険。
    BUILTIN\Administrators:F
    BUILTIN\Users:F
    があるから それらのユーザーでアクセス出来るだろうと思いがちだが、実は誰もアクセス出来なくなるので要注意!
    Everyone:F だけ消したいなら
    cacls hoge /t /p Administrators:f Users:f
    で やること。

    こんなトラップが用意されてるとは さすがだぜ!








    死ね♥

0 件のコメント :