Posted at

Windowsでファイルのアクセス権変更


Windowsでファイルのアクセス権変更

以前、ファイル名変更のためにアクセス権を修正しました。手順について書き残しておきます。細かい説明は記事最後の補足に記載していますので、余裕があればご覧ください。


動作確認環境


  • Windows 10

  • 変更対象のファイルはローカルに存在する場合1

  • ファイル名を変更するユーザは標準ユーザ


手順

例として今回は「%windir%\System32\termsv.dll」のアクセス権を変更します2。所有者をまず使用ユーザに変更してアクセス権を「フルコントロール」に変更してファイル名を変更し、その後アクセス権を元に戻します。以下に手順を示します。


  1. 変更対象ファイルのバックアップをとる。

  2. ファイルを右クリックして表示されるプロパティを押下してダイアログを表示して「セキュリティ」タブに移動、そして「詳細設定」ボタンを押下。

詳細設定ボタンを押下

3. 所有者(TrustedInstaller)と「アクセス許可エントリ」内にある「Users」のアクセス項目(読み取りと実行)を確認してメモをとり、所有者を変更するため「変更」をクリックする3

所有者の変更を押下

4. 「選択するオブジェクト名を入力してください」にファイル変更を行うユーザのユーザ名を入力して「名前の確認」ボタンを押下して「OK」ボタンを押下する。

使用ユーザ名を入力してOKを押下

5. 所有者が変更されていることを確認する。

所有者が変更されている

6. 「グループ名またはユーザ名」から「Users」を選択し、「編集」ボタンを押下する。

Usersを選択して編集ボタンを押下

7. ポップされるダイアログの「アクセス許可」から「フルコントロール」のチェックボックスを有効にして「OK」を押下する4

Usersを選択して編集ボタンを押下

8. ファイル名を変更する。

9. 手順4から手順8を参考にして元の状態に戻す5


参考資料





  1. リモートのファイルを扱う場合、CIFSというプロトコルを用いてリモートPCの共有フォルダにアクセスしますが、まずはCIFSアクセス権を適切に修正します。その上でNTFSによるアクセス権の修正を行ってください。CIFSアクセス権についてはこちらの記事がわかりやすいです。変更方法は本記事では扱いません。 



  2. アクセス権はNTFSやext4などのファイルシステムが管理しています。OSが直接管理しているわけではありません(OSより低レベル)。こちらの記事がわかりやすいです。 



  3. アクセス権の変更を行うため。今回は「Users」グループのアクセス権を変更しました。標準ユーザが属しているグループです。実行ユーザが属しているグループであればOKです。エントリにユーザを直接加えることも出来ます。 



  4. 詳細設定でなくてもある程度アクセス権の変更操作は出来ますが、NTFSによるアクセス権をきちんと設定したい場合は詳細設定で行いましょう。現在WindowsではファイルシステムとしてNTFSが主流ですが、昔はFATでした。FAT時代のUIと互換性を持たせるために存在しているようです。 



  5. アクセス権の修正方法とは関係ありませんが、例として登場した「termsv.dll」のデフォルトの所有者は「TrustedInstaller」です。元に戻す際に「NT SERVICE\TrustedInstaller」と入力する必要があります。TrustedInstallerについての説明がQiitaの記事で公開されています。