Назад | Перейти на главную страницу

Какие разрешения мне нужны для перемещения папки?

В корне моего диска есть папка с названием SourceControl который содержит все рабочие копии всех моих программных проектов.

Я хочу переместить папку в свой каталог пользователя (\Users\Me), но что-то насчет разрешений на папку мне запрещает. Не помню, как создавал папку.

Когда я выполняю команду перемещения:

MOVE \SourceControl \Users\Me

Я получаю следующую ошибку:

Access is denied.

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

TAKEOWN /F \SourceControl

Он возвращает следующую ошибку:

ERROR: The current logged on user does not have ownership privileges
       on the file (or folder) "C:\SourceControl".

Я только что узнал о Icacls утилита, которая может проверять и изменять права доступа к файлам.

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

ICACLS \SourceControl

Он составил этот список:

\SourceControl BUILTIN\Administrators:(I)(F)
               BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
               NT AUTHORITY\SYSTEM:(I)(F)
               NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
               BUILTIN\Users:(I)(OI)(CI)(RX)
               NT AUTHORITY\Authenticated Users:(I)(M)
               NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)

Я думаю, это означает, что обычные учетные записи пользователей, такие как моя, имеют разрешение только на чтение и выполнение (RX) здесь, а учетные записи администратора имеют полный контроль (F).

Я использовал Icacls, чтобы передать полный контроль над каталогом моей учетной записи с помощью этой команды:

ICACLS \SourceControl /grant:r Me:F

Команда производит следующий вывод:

processed file: \SourceControl
Successfully processed 1 files; Failed processing 0 files

Теперь проверка разрешений дает следующий результат:

\SourceControl Domain\Me:(F)
               BUILTIN\Administrators:(I)(F)
               BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
               NT AUTHORITY\SYSTEM:(I)(F)
               NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
               BUILTIN\Users:(I)(OI)(CI)(RX)
               NT AUTHORITY\Authenticated Users:(I)(M)
               NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)

Но после этого команда перемещения по-прежнему не работает с той же ошибкой.

Можно ли переместить эту папку без прав администратора? Если нет, как мне это сделать как администратору?

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

Если у вас все еще есть проблемы, есть инструмент sysinternals, называемый дескрипторами, который также может вам помочь.

Сообщения об ошибках вводят в заблуждение. Настоящая проблема заключалась не в недостаточных разрешениях, а в дескрипторе открытого файла для объекта в каталоге.

Утилита Марка Руссиновича Handle, предложенная MDMarra, помогли устранить причину появления сообщений об ошибках.

Диагностируйте ошибку с помощью Handle

Скачать Ручка с веб-сайта sysinternals и извлеките handle.exe в %WINDIR% поставить его на путь. Для Handle требуются права администратора, поэтому откройте новую командную строку как администратор. Выполните следующую команду для поиска дескрипторов открытых файлов на объектах в SourceControl каталог:

handle SourceControl

Выходные данные показывают, что TSVNCache.exe имеет дескриптор открытого файла в каталоге:

TSVNCache.exe      pid: 2860   type: File           1C8: C:\SourceControl\Project

Закройте дескриптор файла, завершив процесс

TSVNCache.exe является компонентом TortoiseSVN, графический клиент SVN и хорошо известный ресурсный боров.

Чтобы завершить процесс TSVNCache.exe, отключите кэш состояния TortoiseSVN в диалоговом окне настроек TortoiseSVN:

Повторите поиск ручки. Выход handle SourceControl подтверждает, что в каталоге больше нет дескрипторов открытых файлов:

No matching handles found.

Переместить каталог

Повторите команду, чтобы переместить каталог. Операция завершается успешно с ожидаемым результатом:

1 file(s) moved.