Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Не получается использовать cmd для выдачи прав пользователям на папку (http://forum.oszone.net/showthread.php?t=336646)

RomanMirniy 12-09-2018 11:24 2831011

Не получается использовать cmd для выдачи прав пользователям на папку
 
Доброго дня!

Проблема такая. Используя 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

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

RomanMirniy 12-09-2018 11:28 2831013

Получается вот так:
http://prntscr.com/ktg0c8

А мне нужно так:
http://prntscr.com/ktg11r

Elven 12-09-2018 11:56 2831015

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

icacls D:\SkladNew2018 /save ACL.bak
восстановление
Код:

icacls /restore D:\SkladNew2018 ACL.bak

Busla 12-09-2018 11:59 2831016

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

RomanMirniy 12-09-2018 12:07 2831017

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

icacls D:\SkladNew2018 /restore ACL.bak
проблемы: "Вызывающая сторона не обладает всеми необходимыми правами доступа."

RomanMirniy 12-09-2018 12:25 2831018

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

Elven 12-09-2018 12:41 2831021

Цитата:

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

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

RomanMirniy 12-09-2018 12:52 2831026

Цитата:

сли так, то нужно смотреть на права корневой директории, как вариант становиться владельцем папки до того как восстанавливать права (тоже через icacls, ключей на память не помню).
Так я владелец и диска D и самой папки, и файл и все запускается под моим профилем. Я уж думал что пишу как то не так. А почему не работает
Код:

ICACLS D:\SkladNew2018 /grant:r Sergey:(F)  /T
в плане того, что права создаются, но не те, что надо

Elven 12-09-2018 14:18 2831029

Цитата:

Цитата RomanMirniy
в плане того, что права создаются, но не те, что надо »

создаются те что указаны:
(F) - полный доступ
/T - ко всем вложенным.
Т.к. не указаны параметры отвечающие за наследование права и выставляются индивидуально для каждого файла/папки.
а есть еще вот такие параметры
(OI) - наследование объектами
(CI) - наследование контейнерами
(IO) - только наследование
(NP) - запрет на распространение наследования
(I) - наследование разрешений от родительского контейнера

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

ICACLS D:\SkladNew2018 /grant:r Sergey:(OI)(CI)(F)
то вроде как должно сработать именно так как хочется. но, имхо, бэкап прав - стабильнее.

RomanMirniy 12-09-2018 15:18 2831033

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


Время: 23:11.

Время: 23:11.
© OSzone.net 2001-