Перенос файлов и прав доступа (безопасность)

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Post Reply
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Доброго времени суток!
Много лет пользуюсь FarManager со времен NortonCommander. Без него чувствую себя как без рук и это не преувеличение! Всегда все хватало для работы, приятно видеть постоянные улучшения, все в ногу с современными операционками, удобства использования процветают.
С одним не могу справиться, может, не знаю, как это сделать. Очень неудобно одно досадное поведение в Far.
В системах, например, Win7 и Win2012R2 при переносе файлов в проводнике из одной папки в другую на одном и том же диске меняются права доступа (настройки безопасности) в согласии с настройками папки назначения. Это очень логично. Давным давно, в WinXP и Win2003, это было не так и безопасность в таких случаях сохранялась, потом появился фикс и ключик в реестре по изменению этого поведения.
К сожалению в Far сегодня при переносе файлов на одном диске и опции "Права доступа" "По умолчанию" настройки безопасности перемещаемых файлов сохраняются, хотя выставлен параметр "Использовать системную функцию копирования" (параметра "Использовать системную функцию переноса" не видно), что очень-очень не удобно и постоянно возникают проблемы с доступом к перемещенным файлам, например, на сетевом диске. Каждый раз при переносе нажимать опцию "Наследовать" также очень не удобно и не всегда возможно, ведь для этого требуются специальные права.
Вопрос-предложение. Нет ли в Far настройки, которая меняет поведение установки прав доступа перемещаемых в пределах диска файлов для опции "По умолчанию" ? Хорошо было бы вынести такую настройку на уровень параметра "Использовать системную функцию копирования".
Вопрос-предложение. Не лучше ли вообще убрать опцию "По умолчанию" из диалога Копирования и Переноса, а оставить только "Копировать" и "Наследовать", чтобы сразу было видно, что делается с правами файлов? Соответственно, "По умолчанию" задавать в системных настройках...
Вопрос-предложение. Почему бы не сориентировать поведение по умолчанию в Far (после установки Far) при переносе файлов на поведение в современных ОС?
Надеюсь, написал по адресу.
Спасибо за Ваш труд!
Last edited by HaRT on Mon 22 Jul, 2019 12:14, edited 1 time in total.
Reason: Уточнён заголовок Темы
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Перенос файлов и прав доступа (безопасность)

Post by DrKnS »

ogpzdry wrote: Mon 22 Jul, 2019 12:04нажимать опцию "Наследовать" также очень не удобно и не всегда возможно, ведь для этого требуются специальные права
Я не совсем понимаю - вы думаете, что если нажимать опцию будете не вы, а код, то специальные права не потребуются?
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Если будет актуально, повторю опыты и отвечу на этот вопрос позже. Возможно, я сделал неверные выводы. Боюсь, что это отвлечет от главного: сделать Far при переносе файлов в пределах одного диска подобным Проводнику без дополнительных переключений опции при каждой операции (возможно, только единожды установив какую-нибудь настройку, которую, опять же, наверное, имеет смысл установить по умолчанию как в Windows).
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Перенос файлов и прав доступа (безопасность)

Post by DrKnS »

Запустите hlf:System.CopySecurityOptions
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Хорошо у вас настроен Far по умолчанию! О таких настройках не приходилось и думать. В последнее время устраивают почти все настройки по умолчанию сразу после инсталляции.
Попробовал для указанного вами параметра задавать значения 3 и 7. После перезапуска Far 3.0.5354 параметр сбрасывается в 0.
После Shift+F9 значение сохраняется (разницу между 3 и 7 не прочувствовал, главное, что после Shift+F9 значение в профиле пользователя сохраняется). Здорово! Принято. Теперь ясна логика нуля - это и есть "По умолчанию" - первый из трех вариантов. Наверное, было бы здорово, чтобы это соответствовало поведению Проводника Windows.

Теперь опыты...
Подготовка к опытам.
Каталог C:\temp, в нем две папки: "All" с безопасностью Пользователи - Полный доступ, Администраторы - Полный, Все – Изменение; и "Pro" с безопасностью: Пользователи - Полный доступ, Администраторы – Полный доступ, Прошедшие проверку - Изменение.
В папке All две папки AllE и AllF с наследуемыми от All настройками безопасности (без явно указанных настроек прав доступа), в папке Pro – папки ProE и ProF с наследуемыми настройками безопасности от своей родительской папки Pro (без явно указанных настроек прав доступа).

Опыт с Проводником Window.
Переносим в Проводнике папку AllE в Pro, а ProE в All. Смотрим безопасность. Теперь она такая же, как и в случае КОПИРОВАНИЯ этих папок в тех же направлениях!!! Т.е. AllE наследует права доступа от Pro (НЕ содержит ЯВНО указанные настройки), а ProE наследует настройки безопасности от All (НЕ содержит ЯВНО указанные настройки).

Опыт 0х0 (Access rights: (•) Default) Default – напрашивается вариант, как в Проводнике.
Переносим в Far’е папку AllF в Pro, а ProF в All. Смотрим безопасность. Она такая. Папка AllF содержит такую же безопасность, как и до перемещения – наследует права доступа от папки All, которая уже не является родительской для нее (ЯВНЫХ настроек НЕТ). Аналогично, ProF, находясь в All содержит те же наследуемые настройки безопасности от папки Pro. Такое поведение при переносе было в Проводнике Windows XP. Это не удобно в использовании, приводит к проблемам доступа, например, если я из своего места на сетевом диске переместил файлы в каталог с общим доступом, то другие его там могут не увидеть. При копировании таких проблем нет.

Опыт 0х3 (Access rights: (•) Inherit)
Переносим в Far’е папку AllF в Pro, а ProF в All. Смотрим безопасность. Она такая. Папка AllF содержит такую же безопасность как Pro, однако все права доступа указаны ЯВНО. Аналогично, ProF, находясь в All содержит ЯВНО указанные права доступа как у родительской папки All. Как видно, это также не соответствует поведению Проводника. Также не удобно. Получается, идет разрыв наследования безопасности и в случае изменения прав доступа у родительских папок, безопасность перемещенных таким образом дочерних папок останется без изменения, что также может легко привести к проблемам доступа.

Получается, к сожалению, что в Far’е нет возможности выставить точно такое же поведение, как в Проводнике, что касается переноса файлов в пределах одного диска, и что имеет смысл, если есть права на изменения прав доступа содержимого папки назначения. Это весьма востребовано, например, при работе по администрированию и обслуживанию сетевых каталогов.

Насчет наличия прав на изменение прав доступа перемещаемых объектов, Вы, DrKnS, совершенно правы. Опыты показали, что при отсутствии таких прав Far ведет себя более честно, он сообщает о недостатке прав и переносит файлы без изменения безопасности. Проводник переносит по-тихому, без предупреждения и без изменения безопасности.  Сначала мне показалось, что Проводник умеет это делать только с правами Изменение, однако, это так, только когда ты являешься владельцем перемещаемых объектов.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Перенос файлов и прав доступа (безопасность)

Post by DrKnS »

ogpzdry wrote: Wed 24 Jul, 2019 11:58в Far’е нет возможности выставить точно такое же поведение, как в Проводнике
А можете резюмировать, что именно не получается? Желательно максимально кратко.
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Спасибо! Постараюсь.
Хотелось бы, чтобы при переносе файлов на одном диске с опцией безопасности Наследовать (при наличии соответствующих прав) права доступа перенесенных файлов были такими же, как у новой родительской папки, но были указаны неявно, иначе получается разрыв наследования безопасности, что очень печально. (В версии 3.0.5354 они получаются явными.) Иными словами, чтобы результат прав доступа был такой же, как при копировании этих же файлов в Far'e ([x] Использовать системную функцию копирования). Именно так при наличии прав ведет себя Проводник при переносе файлов на одном диске.
Пожалуй, это главное резюме просьбы, остальное зависит от этого.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Перенос файлов и прав доступа (безопасность)

Post by DrKnS »

ogpzdry wrote: Tue 30 Jul, 2019 10:31получается разрыв наследования безопасности, что очень печально
5438.
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Огромное спасибо!
Тестирую, пользуюсь, наслаждаюсь!
Режим Copy и Inherited отрабатывают как в Проводнике, супер! Нет разрыва наследования!
Мне показалось, что теперь режим Default работает каким-то третьим способом (вроде, должен использовать либо Copy либо Inherited), после перемещения файлов в пределах диска при наличии прав на изменение безопасности, он на одни элементы делает наследование как нужно (в качестве родителя указана конкретная родительская папка), а в других случаях с наследованием тоже все хорошо, но в качестве родителя указано непонятное "Родительский объект". Напрашивается, что используется какая-то третья схема формирования настроек безопасности перемещаемых файлов.
Очень хочется, чтобы Default для процедуры перемещения был закреплен на умолчания Проводника - при перемещении в пределах одного диска поведение было как при явно указанной опции Inherited точь в точь.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Перенос файлов и прав доступа (безопасность)

Post by DrKnS »

ogpzdry wrote: Wed 07 Aug, 2019 09:30Мне показалось, что теперь режим Default работает каким-то третьим способом
Не должно - Default сейчас это "вообще ничего не делать с правами доступа, расслабиться и откинуться на спинку кресла".
ogpzdry wrote: Wed 07 Aug, 2019 09:30хочется, чтобы Default для процедуры перемещения был закреплен на умолчания Проводника
Речь об этих политиках или о чём-то другом?
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Спасибо за объяснения, перевариваю.

Я понял, что Default - это все-таки третий вариант обработки элементов безопасности файлов при переносе В ПРЕДЕЛАХ ОДНОГО ДИСКА (речь только об этих ситуациях, при копировании на любой диск или при переносе на другой диск всегда все было понятно):
Copy - копируются само собой с разрывом наследования по отношению к новому каталогу-родителю, так как элементы указываются явно (бывает очень востребовано, что в Проводнике одним кликом не сделаешь!!!);
Inherited - при наличии прав наследуются от нового каталога-родителя (или прародителя, все хорошо работает, полностью идентично Проводнику!!!);
Default - элементы безопасности вообще остаются без изменений, что не всегда совпадает с поведением Проводника (мне сложно здесь увидеть практическую ценность, правда, это может влиять на скорость переноса в пределах одного диска, наверное).

Это просто мое личное мнение. В принципе, если есть возможность выставить и сохранить конфигурацию на Inherited, то уже здорово! Но на мой взгляд было бы лучше при Default отрабатывать по одному из двух вариантов, т.е. либо по Copy, либо по Inherited, либо оставлять без изменений (если нет прав на изменения, Проводник также поступает), АНАЛОГИЧНО текущему поведению Проводника. Это избавило бы от разных результатов при таких переносах по умолчанию в Фаре и в Проводнике, ведь большинство, включая админов и спецов, вероятно, чаще всего используют режим Default, а саму разницу в поведении смогут заметить только при наступлении проблем.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Перенос файлов и прав доступа (безопасность)

Post by DrKnS »

ogpzdry wrote: Fri 09 Aug, 2019 07:13 Default - элементы безопасности вообще остаются без изменений, что не всегда совпадает с поведением Проводника (мне сложно здесь увидеть практическую ценность, правда, это может влиять на скорость переноса в пределах одного диска, наверное).
Default - да, как написано выше, это "ничего не делать".

Ничегонеделание, в общем случае, приводит к следующему:
1. При копировании чего угодно куда угодно права наследуются.
2. При переносе в пределах тома права остаются теми же (потому что по сути это переименование).
3. При переносе за пределы тома права наследуются (потому что перенос за пределы тома - по сути копирование + удаление).

Лично я не против, чтобы по умолчанию было Inherit, но это может иметь забавные последствия.
Например, фар не различает переименование и перенос файла. Вы можете сознательно иметь файл со специальными правами, потом переименовать его и внезапно обнаружить, что они превратились в тыкву.
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Добрый день!
Спасибо за ответ.
Насчет переименования я полностью согласен! Иначе нельзя. Вероятно определиться с переименованием не так сложно - если не меняется путь до объекта... Наверное, эти две операции хорошо было бы по-любому различать, вероятно, достаточно на уровне программного кода, не на уровне интерфейса. При голом переименовании, наверное, вообще безопасность трогать не нужно, игнорируя опции для прав, смысла просто нет...
Обрадовался. Появилось время. Поставил версию 3.0.5454. Знакомлюсь, кажется есть изменения по правам и не мало...
ogpzdry
Posts: 8
Joined: Mon 22 Jul, 2019 11:24

Перенос файлов и прав доступа (безопасность)

Post by ogpzdry »

Добрый день!

Большое спасибо за выполненные изменения поведения FAR 3.0.5454 при переносе файлов в отношении изменения безопасности этих файлов! Даже несмотря на сказанное ниже, меня в целом все устраивает. Но есть один досадный момент.

Установил System.CopySecurityOption.cmd равным 0x3, чтобы по умолчанию при переносах была активна опция Inherited.

Замечено, что переносе файла в пределах одного диска в другую папку, в которой есть права на запись (то есть нет права «Смена разрешений»), перенос с опцией Inherited осуществляется КАК НАДО!!! ЭТО ГЛАВНОЕ. Безопасность файла берется из новой родительской папки ТОЧНО ТАКЖЕ КАК ПРИ КОПИРОВАНИИ И ТОЧНО ТАКЖЕ КАК ПРИ ПЕРЕНОСЕ В ПРОВОДНИКЕ WINDOWS! К сожалению, в конце появляется красный диалог с текстом: «Cannot set file access rights for <filename>… Операция успешно завершена», которая несколько сбивает с толка.
Было бы нежелательным, если бы безопасность должна была меняться как-то иначе. Как есть сейчас – самое то!

То же самое красное окно появляется, даже если в другой папке есть полные права.
То же самое красное окно появляется и при переименовании файла в этой же папке…
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Перенос файлов и прав доступа (безопасность)

Post by DrKnS »

ogpzdry wrote: Mon 23 Sep, 2019 12:26красное окно
Это баг, возьмите последнюю версию.
Post Reply

Return to “Предложения и идеи”