У меня система XP Pro, использующая Simple File Sharing. Общий доступ включен для определенной папки, а также «Разрешить сетевым пользователям изменять мои файлы».
При копировании (чтении) общих файлов с другого компьютера некоторые из них (около 20 из 1000) выдают ошибку «Отказано в доступе». Ни одна программа не открывает файлы.
Мне нужно перейти на машину, которая делится файлами, и запустить
CACLS C:\MySharedFolder\*.* /T /e /g Everyone:c
Это решает проблему, и все файлы становятся доступными. Но неудобно запускать эту команду. Через несколько дней или недель ошибка возвращается.
В чем корень этой ошибки? Похоже, что программа, которая обращается к файлам (в данном случае Eudora), неправильно устанавливает разрешения - но почему только на этой машине? У меня есть другие машины с идентичными конфигурациями общих папок, на которых никогда не было этой проблемы.
решение1
Классически это может быть вызвано пользователямивырезание и вставкафайлы в общий ресурс. Это означает, что если файлы (в источнике) были настроены так, чтобы не наследовать разрешения от родительской папки, то при копировании и вставке в место назначения они сохраняют свои старые разрешения.
решение2
Это не совсем ответ, а дополнительная информация (нельзя использовать комментарий из-за ограничения на количество символов). Я все еще пытаюсь понять и решить эту проблему.
Вот как выглядят права доступа к «плохому» файлу в CACLS (права доступа не позволяют копировать его с другого компьютера):
C:\...\Mail\descmap.pce BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
MARS\Tim:F
BUILTIN\Users:R
Вот как выглядит «хороший» файл:
C:\...\Mail\In.mbx Everyone:C
BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
MARS\Tim:F
BUILTIN\Users:R
Вот как выглядят разрешения для папки «Почта» (родительской):
C:...>cacls mail C:...\Mail Everyone:(OI)(CI)C BUILTIN\Administrators:F BUILTIN\Administrators:(OI)(CI)(IO)F NT AUTHORITY\SYSTEM:F NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F MARS\Guest:F CREATOR OWNER:(OI)(CI)(IO)F BUILTIN\Users:R BUILTIN\Users:(OI)(CI)(IO)(special access:) GENERIC_READ GENERIC_EXECUTE BUILTIN\Users:(CI)(special access:) FILE_APPEND_DATA BUILTIN\Users:(CI)(special access:) FILE_WRITE_DATA
Атрибуты "Everyone:C" и "BUILTIN\Administrators:F" каким-то образом удаляются из проблемных файлов. Разные файлы затрагиваются в разное время. Кажется, нет никакой последовательности.
решение3
Это не решение, а просто возможность сравнить мнения...
У меня почти такая же проблема. Однако в моем случае у меня был идентификатор пользователя, который входил на сервер Samba-3, выступающий в качестве PDC (поэтому у меня есть машины, присоединенные к домену).
Этот идентификатор пользователя мог получить доступ к файлу с WinXP box, но на машине Win7-PRO они получали ошибку «Доступ запрещен». Файл не перемещался из общего ресурса в общий ресурс или из папки в папку. Это была просто публичная папка, к которой имели доступ все в компании.
Я перепробовал все способы решения проблемы, и единственное, что я обнаружил, — это повторная установка на рабочей станции чистой копии Windows-7. Это решило проблему.
В моем случае проблема, по-видимому, была во взаимодействии Windows7 с SAMBA. Интересно, что у меня есть другие ящики Win7, на которых проблема не возникала с другими пользователями, но у этого конкретного идентификатора пользователя проблема была только на ящиках Win7.
Я даже удалил идентификатор пользователя и создал его заново, а очистка перемещаемого профиля не исправила проблему. Я также обнаружил, что если я скажу пользователю использовать недавно созданный идентификатор пользователя, который не совпадает со старым идентификатором пользователя, проблема все равно останется.
Это было так, будто эта одна рабочая станция с Windows 7 вызывала проблему с идентификатором пользователя, которая затем распространялась с этим идентификатором пользователя на другие рабочие станции с Windows 7.
Переустановка одной рабочей станции Win-7 решила проблему.