綾小路龍之介の素人思考

[windows] XP Home でファイル共有すると、共有先から編集できるファイルと出来ないファイルがある。

たとえば、何かのプログラムで生成されたファイルが編集できなくなってしまう場合がある。「アクセスできません。ディスクがいっぱいでないか、書き込み禁止になっていないか、またはファイルが使用中でないか確認してください。」等のエラーメッセージが出る場合がある。このとき、アクセス権が問題になっている場合がある。Windows XP Homeでアクセス権を変更する場合には、caclsコマンドを使うしか方法がない。

問題のあったファイルのアクセス権をcaclsで確認すると以下のようになる。

C:\fuga>cacls hoge.txt
C:\fuga\hoge.txt C9CX9EGCXZAIOJW\Owner:F
                      NT AUTHORITY\SYSTEM:F
                      BUILTIN\Administrators:F

同様に問題のないファイルのアクセス権を確認すると以下のようになる。つまり、問題のあったファイルにEveryoneの変更権とBUILTIN\Usersの読み取り権を与えればよいということがわかる。

C:\fuga>cacls test.txt
C:\fuga\test.txt Everyone:C
                      BUILTIN\Users:R
                      C9CX9EGCXZAIOJW\Guest:F
                      NT AUTHORITY\SYSTEM:F
                      BUILTIN\Administrators:F

Everyoneの変更権を与えるには以下のようにする。

C:\fuga>cacls hoge.txt /P Everyone:C
よろしいですか (Y/N)?Y
処理ファイル: C:\fuga\hoge.txt

ワイルドカードを使うことも出来る。

C:\fuga>cacls * /P Everyone:C
よろしいですか (Y/N)?Y
処理ファイル: C:\fuga\hoge.txt
処理ファイル: C:\fuga\hoge0.txt
処理ファイル: C:\fuga\hoge1.txt
処理ファイル: C:\fuga\hoge2.txt
処理ファイル: C:\fuga\hoge3.txt
C:\fuga>cacls /?
ファイルのアクセス制御リスト(ACL) を表示または変更します。

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

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

リファレンス

  1. caclsコマンドでACLを編集する - @IT
  2. アクセスできません。ディスクがいっぱいでないか、書き込み禁止になっていないか、またはファイルが使用中でないか確認してください。 - Google 検索
  3. cacls - Google 検索
  4. XP Home Editionで、NTFSのアクセス権を設定してみましょう - ACL(Access Control List)って何?
  5. windows xp home アクセス権 cacls - Google 検索

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2010-01-07T02:43:19+09:00
  2. Modified: 2010-01-07T02:43:19+09:00
  3. Generated: 2017-05-12T23:09:18+09:00