3

На моей работе мы недавно перешли с XP на Windows 7, и, как разработчик, это был кошмар. Я разрабатываю для встраиваемых систем, поэтому наш процесс сборки может быть немного другим. Наш процесс сборки чрезвычайно сложен и генерирует множество копий файлов, которые необходимо перемещать и копировать. Проблема в том, что сборка часто дает сбой, потому что у нее нет разрешения на копирование файла.

На всей моей директории сборки я запускаю

takeown /F * /R /D Y
icacls . /T /Grant <userid>:F

Из корневого каталога сборки, но у меня все еще есть проблемы с копированием файлов (невозможно создать обычный файл 'bla.bla': разрешение запрещено). Поэтому я вынужден вручную коснуться файла, установить режим +www и выполнить повторную сборку.

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

РЕДАКТИРОВАТЬ: Дополнительная информация: Windows x64, GNU make, используя bat-файл для установки переменных среды перед вызовом make

2 ответа2

2

Найдите каталог сборки в графическом проводнике Windows, щелкните его правой кнопкой мыши и выберите « Свойства». Перейдите на вкладку « Безопасность » и нажмите кнопку « Дополнительно» , а затем в появившемся окне нажмите кнопку « Дополнительно». Если установлен флажок Включить наследуемые разрешения от родительского объекта , снимите этот флажок. Выберите « Удалить» в появившемся диалоговом окне с предупреждением. Если какие-либо списки ACL остаются в поле « Разрешения» , удалите их.

Теперь выберите Добавить, введите свое имя пользователя, нажмите ОК. Затем появится диалоговое окно, которое позволяет вам выбрать разрешения для этого пользователя. Установите флажок Полный доступ в разделе « Предоставить» и нажмите « ОК». Повторите эти действия для других учетных записей пользователей или групп, которым необходим доступ к каталогу, если таковой имеется. Кроме того, на всякий случай добавьте Полный доступ для группы « Администраторы » и встроенного пользователя SYSTEM . Если каталог находится на вашем локальном компьютере, и только вы можете войти в него, вы можете просто предоставить группе « Все » полный контроль, чтобы абсолютно определенные вещи работали.

Затем выберите « Заменить все разрешения для дочерних объектов наследуемыми разрешениями для этого объекта». Теперь диалоговое окно должно выглядеть примерно так:

Диалог расширенной безопасности Windows

Наконец, нажмите кнопку ОК и выберите Да, чтобы убедиться, что вы хотите перезаписать разрешение всех файлов и подкаталогов в этом каталоге. Это заменит любой алфавитный набор разрешений, которые вы используете, разрешениями, которые точно соответствуют тому, что вы только что применили к самому каталогу сборки. Более того, изменения в разрешениях каталога компоновки теперь будут автоматически распространяться на все файлы, находящиеся под ними, поэтому вам нужно только изменить разрешения каталога компоновки в будущем, а не делать это рекурсивно во всем каталоге.

0

Для начала я бы запустил инструмент, который вы используете для сборки / перемещения в качестве администратора, который должен решить многие из проблем. Кроме того, когда вы говорите, что ICacls, похоже, не сокращает его, он не дает вам прав или дает вам права, но у вас все еще есть проблемы?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .