CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Ответить
Аватара пользователя
RomanMirniy

CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение RomanMirniy »

Доброго дня!



Проблема такая. Используя cmd делаю что-то типа автоматического восстановления бекапа баз 1С после вируса шифровальщика(если такое произойдет), одной из частей этого батника является удаление старой папки с базой, а затем распаковка архива базы, в которой он создает точно такую же папку. И в этом месте я столкнулся с проблемой, что при распаковки папки права на нее не восстанавливаются, остаются только наследуемые от корня диска, а при добавлении пользователя Sergey и попытке дать ему полные права, даются только особые разрешения и виндой я могу читать, записывать удалять все в этой папке, но 1С видит блокировку базы. Делаю так:





Код:

Код: Выделить всё

ICACLS D:\SkladNew2018 /inheritance:d /T /L
ICACLS D:\SkladNew2018 /remove:g Sergey /T
ICACLS D:\SkladNew2018 /grant:r Sergey:(F)  /T

ПС: Хотя поправка, через винду могу создать файл, удалить. Менять не могу
Аватара пользователя
Elven

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение Elven »

так себе вариант, а если кроме пользователя Sergey доступ к папке будет нужен еще и пользователю Vasya? Имхо проще один раз выдать папке правильные права руками, сделать бэкап прав через тот же icacls и при распаковке архива применять этот бэкап на распакованное файло. А еще лучше перед каждым бэкапом файлов делать бэкап прав и держать это дело вместе, дабы не маяться каждый раз с правкой батника.

бэкап



Код:

Код: Выделить всё

icacls D:\SkladNew2018 /save ACL.bak

восстановление



Код:

Код: Выделить всё

icacls /restore D:\SkladNew2018 ACL.bak
Аватара пользователя
Busla

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение Busla »

RomanMirniy, ну так не удаляйте саму директорию, а только её содержимое
Аватара пользователя
RomanMirniy

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение RomanMirniy »

Elven, с созданием и восстановлением файла DACL пробовал. Если как вы пишете - ошибка "первым должна стоять директория", а при восстановлении

Код:

Код: Выделить всё

icacls D:\SkladNew2018 /restore ACL.bak

проблемы: "Вызывающая сторона не обладает всеми необходимыми правами доступа."
Аватара пользователя
RomanMirniy

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение RomanMirniy »

Busla, вариант рабочий, спасибо, но все таки хотелось больше изучить о предоставлении пользователям прав через cmd, чем просто удалить внутрянку папки))
Аватара пользователя
RomanMirniy

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение RomanMirniy »

Цитата RomanMirniy:



"Вызывающая сторона не обладает всеми необходимыми правами доступа."
CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку




Если так, то нужно смотреть на права корневой директории, как вариант становиться владельцем папки до того как восстанавливать права (тоже через icacls, ключей на память не помню).
Аватара пользователя
RomanMirniy

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение RomanMirniy »

Цитата:



сли так, то нужно смотреть на права корневой директории, как вариант становиться владельцем папки до того как восстанавливать права (тоже через icacls, ключей на память не помню).



Так я владелец и диска D и самой папки, и файл и все запускается под моим профилем. Я уж думал что пишу как то не так. А почему не работает



Код:

Код: Выделить всё

ICACLS D:\SkladNew2018 /grant:r Sergey:(F)  /T

в плане того, что права создаются, но не те, что надо
Аватара пользователя
Elven

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение Elven »

Цитата RomanMirniy:



в плане того, что права создаются, но не те, что надо
CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку




создаются те что указаны:

(F) - полный доступ

/T - ко всем вложенным.

Т.к. не указаны параметры отвечающие за наследование права и выставляются индивидуально для каждого файла/папки.

а есть еще вот такие параметры

(OI) - наследование объектами

(CI) - наследование контейнерами

(IO) - только наследование

(NP) - запрет на распространение наследования

(I) - наследование разрешений от родительского контейнера



И если для указанной папки задать права таким образом:



Код:

Код: Выделить всё

ICACLS D:\SkladNew2018 /grant:r Sergey:(OI)(CI)(F)

то вроде как должно сработать именно так как хочется. но, имхо, бэкап прав - стабильнее.
Аватара пользователя
RomanMirniy

Re: CMD/BAT - Не получается использовать cmd для выдачи прав пользователям на папку

Сообщение RomanMirniy »

Спасибо огромное! Вот в каких надо было капать. А я на них и внимания не обращал) Так действительно помогло!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»