5

Поэтому я хочу, чтобы я не записывал некоторые файлы в папку. Я всегда работаю с папками back_up, в которых сравниваю, передаю данные в целевые проекты. Проблема в том, что иногда по ошибке я редактирую файлы резервных копий. Можно ли как-нибудь отказать в праве редактирования / записи для себя? Я не хочу, чтобы файлы были переименованы / удалены. Установка флага только для чтения - это то, что абсолютно ничего не делает - после этого я могу без проблем редактировать / удалять файлы (по крайней мере, в Win 8.1). Это очень важно для меня - потому что пока я таким образом испортил много файлов back_up, и это доставляет мне много хлопот. Есть идеи?

Я использую последнюю версию Windows 8.1 x64.

4 ответа4

2

Оригинальный ответ:

Если это NTFS, вы можете использовать функцию безопасности файловой системы.

  1. Отредактируйте вкладку "Безопасность" папки, я предполагаю, что вы не меняли их ранее: удалите "аутентифицированных пользователей", она может предупредить вас, что сначала вы должны отключить наследование, сделайте это в опции "аванс".

  2. Убедитесь, что UAC включен.

Теперь, когда вы попытаетесь отредактировать / добавить / удалить что-либо внутри этой папки, UAC предупредит вас, вы даже можете установить более высокий уровень, чтобы вы каждый раз вводили свой пароль.

Редактировать: описанный выше метод является простым и надежным руководством, которое применимо только к Windows Vista+ и требует прав администратора и настроек безопасности файлов / папок без ограничений.

Однако, если вы понимаете принцип, лежащий в основе, вы можете сделать это практически на любой версии Windows с NTFS, на любой учетной записи пользователя.

Предположим, что ваша обычная рабочая учетная запись - A, а другая "безопасная" учетная запись - B, вы можете установить для владельца папки значение B и дать ей полную привилегию (не забудьте отметить "заменить все разрешения дочернего объекта на наследуемые разрешения этого объекта". "), затем добавьте учетную запись A только для чтения, и теперь вы можете записывать в нее только учетную запись B, в то же время читая / используя ее в ежедневной учетной записи A.

Без прав администратора вы не можете удалить администратора из списка доступа или изменить владельца, если он был администратором. Но метод должен работать в любом случае, также, если вы создаете папку, владелец должен быть по умолчанию для вас.

PS. Все вышеизложенное основано на моем опыте, добро пожаловать в совет, если у вас есть лучший метод.

1

Ромео верен, вы можете сделать свои отдельные файлы доступными только для чтения таким образом через свойства, но вы не сможете защитить их от удаления.

Еще одно предложение, если вы хотите быстро изменить несколько файлов только для чтения.

Откройте командную строку и введите команду attrib +r [path] , используя подстановочный знак *

1

Это одна папка, содержащая файлы. Каждый раз, когда я делаю изменения, я делаю "Сохранить как" и увеличиваю номер версии. Однако иногда я случайно нажимаю "Сохранить" и перезаписываю свой файл - Стивен Вацелларо


Как сделать файлы в папке доступными только для чтения

Вы можете использовать ICACLS и явно запретить разрешение атрибутов записи для всех файлов в определенной папке и запретить себе (или любой группе безопасности) перезаписывать или изменять эти файлы, но при этом разрешать доступ на чтение для их открытия.

Ниже приведен пакетный сценарий с переменными среды %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 и т.д., С которой уже был запущен пакетный скрипт.

Если вы попытаетесь сохранить файл, появится диалоговое окно «Сохранить как», и если вы попытаетесь перезаписать файл, уже существующий с тем же именем, вы получите сообщение об ошибке «Отказано в доступе», так как этот файл доступен только для чтения. учетная запись.

Вы просто сохраняете как, называете файл другим именем, но в той же папке, в которой заблокированы все файлы, доступные только для чтения, и здесь вы увеличиваете свой номер на единицу или что-то еще.

Любые вновь сохраненные файлы в этой папке теперь будут иметь запрещенные атрибуты записи, и, следовательно, эти ограничения разрешений применяются к нему сразу же после сохранения файла с новым именем в этой папке.


Дальнейшее чтение и ресурсы

  • Переменные среды

  • ICACLS

    /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

Щелкните правой кнопкой мыши папку «Свойства» под «Атрибутами», выберите «ReadOnly», «Применить».

Это сделает все файлы в этой папке (и вложенные папки, если вы выберете) только для чтения. Когда вы пытаетесь сохранить файл R/O, программа предложит вам сохранить под другим именем

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .