Як вирішити ваду дизайну NTFS Move / Copy?


31

Як відомо всім, хто має справу з дозволами на файловий сервер, NTFS має цікаву функцію / недолік дизайну, відому як проблема "Переміщення / Копіювання".

Як пояснено в цій статті MS KB , дозволи для папки або файлу не успадковуються автоматично від батьків, якщо папка переміщена, а джерело та місце призначення мають однаковий обсяг NTFS. Дозволи мають бути успадковані, якщо папка скопійована або якщо джерело та призначення мають різні томи.

Ось короткий приклад:

У вас є дві спільні папки на тому ж томі NTFS, які називаються "Техніки" та "Менеджери". Група Техніків має доступ RW до папки "Техніки", а Група менеджерів - доступ RW до папки "Менеджери". Якщо хтось має доступ до обох, і вони переміщують підпапку з папки "Менеджери" в папку "Техніки", переміщена папка все ще доступна лише користувачам групи "Менеджери". Група "Техніки" не може отримати доступ до підпапки, навіть якщо вона знаходиться в папці "Техніки" і повинна успадковувати дозволи зверху.

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

Питання:

Який найкращий спосіб подолати цю ваду дизайну NTFS і як ви працюєте з нею у своєму оточенні?

Я знаю, що пов'язана стаття KB розповідає про деякі ключі реєстру, щоб змінити поведінку Windows Explorer за замовчуванням, але вони є клієнтськими і вимагає, щоб користувачі мали можливість змінювати дозволи, які, на мою думку, у більшості середовищ є нестартерними, якщо ви хочете зберегти контроль над дозволами вашого файлового сервера (і над вашим розумом як sysadmin).


2
Я знаю, що приклад "Менеджери / Техніки" - це лише проілюструвати недолік, але в деяких випадках ви хочете такої поведінки: якщо хтось випадково перемістить папку з Менеджерів на Техніків, ви, ймовірно, не хочете, щоб Техніки мали доступ до доступу це.
Уорд - Відновити Моніку

2
Це насправді не є недоліком, так працюють дозволи на використання файлів. Це було задокументовано з моменту виходу NTFS. Я не можу вірити, що деякі люди рекомендують не використовувати дозволи файлів і використовувати лише дозвіл на спільний доступ для контролю доступу. Це суперечить самим основам безпеки для файлового сервера Microsoft. Причина того, що переміщення папки / файлу на один і той же об'єм не успадковується в тому, що папка / файл насправді не переміщується на диску, просто вказівник ми бачимо зміни.
Майкл Браун

Відповіді:


12

Мій підхід полягає в тому, щоб не використовувати дозволу на файли / каталоги на рівні файлів; використовувати дозволи дозволу на загальний доступ до файлів та встановити диск для всієї файлової системи сервера на повний контроль для кожного (який стає суперечливим).

Протягом багатьох років (10+) я виявив, що дозволи NTFS є складнішими і призводять до більшої кількості помилок. Якщо дозволи встановлені неправильно, або спадщина порушена, ви виставляєте дані та їх важко знайти та побачити. Крім того, ви піддаєтеся проблемі переміщення / копіювання, як ви кажете.

Місця, де вам потрібно використовувати ACL рівня каталогу / файлу; Мені невідомо іншого рішення, крім того, як здоров'я перевіряють річ на регулярній основі.


10

Ну це насправді не вада. Це правило для обробки дозволів при переміщенні файлів діє з принаймні бета-версії 2 NT3.1 (хоча, очевидно, не спадкування, оскільки це було додано лише в Windows 2000). Це приблизно так добре відома, як будь-яка функція Windows. Я дуже симпатизую вашому погляду, оскільки нас може бути небагато, кого це не спалило на одному етапі. Але це щось, що сисадмін швидко засвоює.

JR


6
Я мав суперечку з Реймоном Ченом у своєму блозі з цього приводу. Microsoft "продає" NTFS як такий, що має дозвіл на "спадщину", а потім заднім числом, коли цей конкретний тріск у броні виховується. NTFS має право успадкування під час створення файлу шляхом розміщення явних ACE-файлів у файлах під час їх створення. Я б заперечував, що поки документація та маркетингова література говорять про їх систему успадкування, ніби це в реальному часі або документація, або код є помилковим. Вони повинні вибрати одну і зафіксувати.
Еван Андерсон

1
Ну це компроміс. Якщо успадкування було в режимі реального часу, то кожного разу, коли ви відкривали файл на дні глибокого дерева, ОС повинна була б запускати дерево, щоб дізнатися, які ефективні дозволи. Звичайно, компроміс - якщо ви зміните дозволи на вершині глибокого дерева, вам доведеться чекати! Чи Active Directory не використовує ту саму модель?
Джон Ренні

Об'єкти AD правильно успадковують дозволи нових батьків при переміщенні між контейнерами, і я можу стверджувати, що це очікувана "правильна" поведінка під час переміщення файлів / папок у NTFS.
Девід Арчер

3
@renniej: AD використовує наслідування в реальному часі. Файлова система Netware зробила це віками тому. NTFS міг би зробити це також, якби Microsoft його реалізував. Це "дорога не взята". Мене дратує те, що документація Microsoft re: NTFS і Explorer "грає" так, як спадкування відбувається в режимі реального часу (тобто брехні). Скажіть нам, як воно є, або зафіксуйте поведінку, щоб перетворити документацію!
Еван Андерсон

@renniej Як сказав Еван Андерсон, Netware зробив це ще в 1990 році, коли вони були королем. Проблему можна вирішити, створивши інший індекс файлової системи, який відстежує "список видимості". Майкрософт вирішив не робити цього, але, можливо, міг би привернути увагу до майбутнього випуску Windows Server.
sysadmin1138

6

Ми використовуємо NTFS з NT 3.51, і хоча ми бачили цю "проблему" (як і майже всі), вона не доставила нам великих проблем:

  • Ми завжди кажемо людям копіювати файли, якщо їм потрібно перемістити їх з одного спільного каталогу в інший. "Утримуючи клавішу CTRL під час перетягування та переконайтеся, що показник + відображається", - це поширена фраза.
  • Наші спільні папки мають досить просту структуру, і спільні папки, які ми створюємо, не часто перетинаються між групами, тому люди, швидше за все, хочуть копіювати файли.
  • Проблему ми бачимо здебільшого в нашому "загальному" просторі - папках, де кожен може читати / писати, але ці каталоги в основному нетривалі, тому проблема зникає після їх очищення.

4

Обхідні шляхи, про які я можу придумати:

  • знайти певний спосіб зробити теки з різними дозволами на різних томах NTFS
  • Зробіть заплановане завдання (раз на годину або один раз на день, залежно від частоти запитів на підтримку), яке проходить через папки та скидає всі дозволи, щоб вони були такими ж, як у верхнього рівня. Це менше, ніж ідеально, тим більше, що в папках є багато файлів, але це щось, що дозволило б усунути проблему, якщо немає хорошого рішення, наприклад, виправлення реєстру на стороні сервера. Команда, яку ви хочете подивитися, називається "cacls", яку ви можете потім додати до пакетного файлу.

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


+1 - перша відповідь, яку дає Марк, - найкращий вибір. Це біль, але це ваш найкращий спосіб обійти це дурне дизайнерське рішення в NTFS 5.
Еван Андерсон,

Щоб розширити: Це місце, де мої друзі, які використовують SharePoint, сказали б "використовувати SharePoint"! Точно так само мої buddies-control-using-buddies та document-control-system-using-buddies вказували б на Subversion, Documentum тощо, і сказали б "використовувати це". Цей вибір дизайну в NTFS - велика бородавка, і це майже змушує задуматися, чи Microsoft насправді використовує власне програмне забезпечення, коли вам доведеться боротися з ним у власній мережі. (Мені кричить, що Microsoft не використовує їх програмне забезпечення так само, як ми з нашими користувачами. Фактично, приємно мати компанію, заповнену з "працівниками знань".)
Еван Андерсон,

1
Я погоджуюся, що в ідеалі ми могли б розділити всі спільні папки на власні томи, на практиці це неможливо для великого середовища (тисячі спільних папок). Крім того, без якоїсь прикольної точки з’єднання або вуду символічної посилання це означає втрату можливості мати вкладені папки з різними дозволами на них.
Девід Арчер

1
@David: Переміщення даних через акції призведе до копіювання та видалення. Переміщення даних у межах акції призведе до переміщення. Якщо ви зробите кожну спільну папку коренем ієрархії дозволів, не маючи підпапок, які мають більш обмежувальний дозвіл, ви усунете проблему. Ще некрасиво, хоча. (У мене є сервер W2K3 з 2200+ індивідуальними спільними папками на ньому, і я не бачу проблем з продуктивністю ...)
Еван Андерсон,

3

Під час переміщення як адміністратор я використовую xcopy / s / e / c / h / r / k / y - все окрім власності на файл та ACL, що означає, що спадщина ACL автоматично починається. Ніколи насправді не доводилося стикатися з ситуацією, коли користувач хоч речі перенесли.


2
Ваші користувачі живі?
Еван Андерсон,

4
Іноді мені цікаво ...
Максим Мінімус

@Even: Можливо, жоден з них не складається у двох групах!
СамБ

+1 для залучення людей до інструменту, який вирішує цю проблему при збереженні файлів (разом із багатьма іншими); проте XCOPY знецінився: ROBOCOPY.EXE є його дуже здібним наступником.
jnaab

2
Вибачте за зазорення, але не xcopy _copy_ файли (замість _moving_ файли?) - схоже, у автора немає проблем з копіюванням, у нього є лише проблеми з _moving_. Я можу помилятися в цьому комп'ютері через відсутність досвіду, тому, будь ласка, виправте мене, якщо я помиляюся (тобто чи використовуєте ви команду 'del' після використання 'xcopy', тож файли фактично 'скопійовані та видалені'! = переїхав?)
colemik

3

Я використовую групову політику / політику безпеки / файлову систему для відстеження складних дозволів. (НІКОЛИ не використовуйте "замінити дозволи" в політиці).

Сплануйте CACLS, щоб скинути весь дозвіл протягом ночі з подальшим gpupdate / force для повторного застосування дозволу з політики. Працює як шарм.


Імовірно, це лише для серверів Windows? Оскільки групову політику потрібно застосовувати до об’єктів домену, це не могло бути застосовано до спільних пам’яток, що не належать до Windows, як я вважаю?
Rich M

2

Оскільки Windows 7 (або, можливо, Windows Vista), дозволи для папки чи файлу DO успадковуються від батьків, якщо папка переміщена, а джерело та призначення мають той самий обсяг NTFS - якщо файл чи папка копіюється через Провідник. У більш ранній ОС ви можете використовувати менеджер Far - це дозволяє включити успадкування дозволів з пункту призначення (разом з тоннами інших функцій). Хоча Далеке може здатися непривабливим для загального користувача.


0

Дуже просте вирішення полягає в тому, щоб просто зафіксувати файли та розпакувати їх до каталогу призначення.


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