Windows でフォルダーを読み取り専用にするにはどうすればよいですか?

Windows でフォルダーを読み取り専用にするにはどうすればよいですか?

フォルダー内の一部のファイルに書き込むのを防止したいのです。私は常に、比較やターゲット プロジェクトへのデータ転送を行う back_up フォルダーで作業しています。問題は、誤ってバックアップ ファイルを編集してしまうことがあることです。自分自身の編集/書き込み権限を拒否する方法はありますか? ファイルの名前を変更したり削除したりしたくありません。フォルダーを読み取り専用フラグに設定しても、まったく効果はありません。その後は、問題なくファイルを編集/削除できます (少なくとも Win 8.1 では)。これは私にとって非常に重要です。これまで、この方法で多くの back_up ファイルを破損してしまい、多くの問題を抱えているからです。何かアイデアはありますか?

最新バージョンの Windows 8.1 x64 を実行しています。

答え1

元の回答:

NTFS の場合は、ファイル システム セキュリティ機能を使用できます。

  1. フォルダーの「セキュリティ」タブを編集します。以前に変更していないと想定しています。「認証済みユーザー」を削除します。最初に継承を無効にする必要があるという警告が表示される場合があります。「詳細」オプションでこれを実行してください。

  2. UAC がオンになっていることを確認してください。

これで、そのフォルダー内の何かを編集/追加/削除しようとすると、UAC が警告し、毎回パスワードを入力する必要があるようにより高いレベルに設定することもできます。

編集: 上記の方法は、Windows Vista 以降にのみ適用され、管理者権限と、変更されていないファイル/フォルダーのセキュリティ設定を必要とする、絶対に安全な簡単なガイドです。

ただし、背後にある原理を理解していれば、NTFS を搭載したほぼすべての Windows バージョン、どのユーザー アカウントでもこれを実行できます。

通常作業中のアカウントが A で、別の「安全な」アカウントが B であると仮定すると、フォルダーの所有者を B に設定して完全な権限を付与し (「すべての子オブジェクトの権限をこのオブジェクトからの継承可能な権限に置き換える」をチェックすることを忘れないでください)、アカウント A を読み取り専用として追加すると、日常のアカウント A では引き続き読み取り/使用しながら、アカウント B でのみ書き込みが可能になります。

管理者権限がないと、アクセス リストから管理者を削除したり、管理者だった所有者を変更したりすることはできません。ただし、この方法はいずれにしても機能するはずです。また、フォルダーを作成する場合、所有者はデフォルトであなたになります。

追伸:上記はすべて私の経験に基づいています。より良い方法があればアドバイスをお待ちしています。

答え2

これはファイルを含む単一のフォルダです。変更を加えるたびに、「名前を付けて保存」してバージョン番号を増やします。ただし、誤って「保存」を押してファイルを上書きしてしまうことがあります。スティーブン・ヴァセラロ


フォルダ内のファイルを読み取り専用にする方法

使用できます国際交流協会そして明確に否定する属性を書き込む特定のフォルダー内のすべてのファイルへのアクセス許可を付与し、自分自身 (または任意のセキュリティ グループ) がこれらのファイルを上書きまたは変更できないようにしますが、読み取りアクセスを許可してファイルを開くことはできます。

%userdomain%\%username%以下は、アカウントへのアクセスを拒否するために、バッチ スクリプトを実行するマシンにサインオンした現在のドメイン (またはローカル マシン名) とユーザー名 (つまり ) を定義する環境変数を含むバッチ スクリプトです。<domain>\<username>必要に応じて、この名前を任意の有効なドメイン セキュリティ グループ名 (つまり ) に簡単に置き換えることもできます<domain>\<securitygroupname>

バッチスクリプト

変数の値をFolder=、既存のファイルを読み取り専用アクセス可能にする必要がある場所への完全な明示的なフォルダー パス (または UNC パス) に置き換えます。

@ECHO ON

SET Folder=C:\Users\User\Desktop\Test
SET Security=%userdomain%\%username%

ICACLS "%Folder%\*" /deny "%Security%":(OI)(WA)
EXIT

ファイルのACL権限を見ると、属性を書き込む明示的に拒否すると、このフォルダとファイル

ここに画像の説明を入力してください

ここに、すでにバッチ スクリプトが実行されている V1、V2 などのテスト ドキュメントを含むフォルダーがあります。

ここに画像の説明を入力してください

ファイルを保存しようとすると、「名前を付けて保存」ダイアログがポップアップ表示され、同じファイル名で既に存在するファイルを上書きしようとすると、そのファイルはこのアカウントでは読み取り専用であるため、アクセス拒否のエラー メッセージが表示されます。

ここに画像の説明を入力してください

名前を付けて保存し、ファイルに別の名前を付けますが、すべてのファイルを読み取り専用アクセスとしてロックした同じフォルダーに保存し、ここで番号を 1 ずつ増やします。

このフォルダに新しく保存されたファイルには、属性を書き込む拒否され、新しいファイル名のファイルがこのフォルダーに保存されると、これらのアクセス許可制限が直ちに適用され、有効になります。

ここに画像の説明を入力してください


参考文献とリソース

  • 環境変数

  • 国際交流協会

    /deny Sid:perm explicitly denies the specified user access rights.
        An explicit deny ACE is added for the stated permissions and
        the same permissions in any explicit grant are removed.
    
    WA - write attributes
    
    
        inheritance rights may precede either form and are applied
        only to directories:
    (OI) - object inherit
    

答え3

Romeo さんの言う通り、プロパティを通じて個々のファイルを読み取り専用にすることはできますが、削除から保護することはできません。

複数のファイルをすばやく読み取り専用に変更したい場合のさらなる提案。

attrib +r [path]コマンドプロンプトを開き、ワイルドカードを利用してコマンドを入力します。*

答え4

フォルダーを右クリックし、プロパティ、属性の下で、読み取り専用に設定し、適用します。

これにより、このフォルダ内のすべてのファイル(および選択した場合はサブフォルダ)が読み取り専用になります。R/Oファイルを保存しようとすると、ソフトウェアは別の名前で保存することを提案します。

関連情報