Чому я можу записати файли в папку, яка доступна лише для читання?


39

Я спробував це в Windows 7 і Windows XP. Запустіть Провідник Windows і створіть нову папку в тимчасовому місці, яке називається (скажімо) NonWriteable. Клацніть папку правою кнопкою миші та встановіть для неї властивості Read-only.

Папка встановлена ​​лише для читання

Тепер відкрийте папку і створіть новий .txt файл. Це дозволено. Чому? Як встановити папку, щоб все не було змінено всередині неї?

Примітка: Якщо я клацніть правою кнопкою миші файл .txt і встановіть його, щоб Read-onlyпотім система правильно запобігала оновленням файлу.


3
Перевірте розширені параметри та активно забороняйте письмові дозволи. Який обліковий запис ви використовуєте? Адміністративний акаунт повинен завжди мати можливість змінювати речі.
Сет

@Seth Адміністративний акаунт повинен завжди мати можливість змінювати речі? Що робити, якщо хтось намагається отримати доступ до папки на іншій машині?
InterLinked

2
Здається, Windows ніколи не використовувала цей параметр для каталогів. Якщо він знаходиться в межах спільного накопичувача, ви побачите, що Linux не зможе створювати, видаляти або перейменовувати файли, якщо не буде очищено лише читання.
AFH

2
@Seth: Гарний дзвінок. Змінивши розширені дозволи на Securityвкладці, щоб заборонити доступ Create Files / Write Data, тепер я не можу створювати нові файли. Це здається помилкою / обмеженням для Windows. Якщо я програмно викликаю GetFileAttributesAPI в папці, FILE_ATTRIBUTE_DIRECTORYатрибут встановлюється ... але ні FILE_ATTRIBUTE_READONLY.
AlainD

2
Зауважте, що, починаючи з Windows 7, діалогове вікно було змінено, щоб Read-only (Only applies to files in this folder)зрозуміти, що ця опція насправді робить. У цій відповіді є скріншот нового діалогового вікна .
ComicSansMS

Відповіді:


56

На відміну від атрибута для читання лише для файлу, атрибут лише для читання для папки зазвичай ігнорується Windows, компонентами та аксесуарами Windows та іншими програмами. Наприклад, ви можете видалити, перейменувати та змінити папку з атрибутом лише для читання за допомогою Провідника Windows.

Атрибути "Лише для читання" та "Система" використовуються лише Провідником Windows, щоб визначити, чи папка є спеціальною папкою, наприклад системною папкою, в якій переглядається налаштування Windows (наприклад, "Мої документи", "Вибране", "Шрифти", "Завантажені програмні файли". або папку, яку ви налаштували за допомогою вкладки Налаштувати в діалоговому вікні Властивості папки. Як результат, Провідник Windows не дозволяє переглядати або змінювати атрибути папок лише для читання або системи. Якщо в папці встановлено атрибут "Лише для читання", він змушує "Провідник" запитувати Desktop.ini цієї папки, щоб побачити, чи потрібно встановити якісь спеціальні параметри папки.

Джерело: https://support.microsoft.com/en-gb/help/326549/you-cannot-view-or-change-the-read-only-or-the-system-attributes-of-fo

Це стара стаття, але вона все ще стосується всіх версій Windows.

Щоб запобігти створенню файлів у папці, змініть дозволи, використовуючи Securityвкладку у властивостях папки. Натисніть Advancedкнопку та додайте правило, щоб заборонити доступ Create Files / Write Data.


1
@AlainD Так. Це стара стаття, але вона все ще стосується новіших версій Windows. Я повернусь і розгорну відповідь пізніше.
Девід Маршалл

1
Тож атрибут "лише для читання" папки абсолютно не має нічого спільного з тим, щоб вона взагалі була лише для читання? Це не що інше, як невдалий збій UX?
Педро

6
@Hamsteriffic Це спадщина з файлової системи FAT. FAT використовується для підтримки лише декількох атрибутів файлів, RO є одним з них. NTFS має складний механізм ACL для контролю доступу, тому атрибути FAT не мають значення при використанні NTFS. Однак конкретний діалог, про який йдеться, був розроблений багато років тому, коли FAT все ще переважав і з тих пір ніколи не змінювався.
оакад

4
@Hamsteriffic Отже, підсумовуючи коментар дубів: Так.
Олександр Косубек

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.