robocopyを使う時に必ずと言っていいほど使用するのが,バックアップモードのオプションです。
robocopyに/Bをつけると,バックアップモードでバックアップができるようになります。
簡単に説明すると,バックアップモードでrobocopyすると,そのファイルに対してアクセス権がなかったとしても,ファイルをコピーできるようになるというオプションです。
管理者権限の意味がなくなるのでは?
そこで疑問に思うのが,バックアップモードを付けたらなんでもコピーできるのだとすれば,権限の意味がなくなってしまうのではないか,ということです。
でも大丈夫です。このrobocopyのバックアップモードを使うことができるのは,AdministratorsグループかBackup Operatorsグループに所属しているユーザーだけだからです。
Windowsでは,Administratorsグループに所属していたとしても,ファイルの権限設定によってはアクセスできないファイルがあります。
そのようなファイルに対して,ACE(アクセス制御エントリ)の内容にかかわらず,読み取り&書き込みの権限を付与するのが,バックアップモードと言えます。
もう少し技術的な詳細を
robocopyのバックアップモードとは,権限の問題を無視してファイルの読み書きを行う方法です。
それには,SeBackupPrivilege (読み取り) とSeRestorePrivilege (書き込み)の権限が用いられます。
これらの権限は,ACEでどんな権限が設定されていようとも,そのファイルの読み書きを可能にする権限です。
通常,Windowsにおいてファイルにアクセスしたりコピーするためには,まずふさわしい読み書き権限があるかどうかがチェックされますが,SeBackupPrivilegeやSeRestorePrivilegeを持っていれば,そのチェックがバイパスされます。
バックアップモードを実行できる権限を持っているかどうかを確認する
コマンドプロンプトで,whoami /privと打つと,現在のユーザーがSeBackupPrivilegeやSeRestorePrivilegeを持っているかどうかを確認できます。
基本的には,Administratorsグループには,これらの権限が与えられていますので,バックアップモードでのrobocopyを実行することが可能です。
以上,robocopyのバックアップモードに関する説明でした。さらにご質問がある方はコメント欄にどうぞ。
コメント
[…] 参考 robocopyのバックアップモードとは?管理者権限はいらないの? | MacRubyMacRuby […]
[…] 参考 robocopyのバックアップモードとは?管理者権限はいらないの? | MacRubyMacRuby […]