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

Файлы, созданные на сервере, отображаются только для чтения

Когда я создаю файл на сервере Windows с помощью cygwin, полученный файл доступен только для чтения. Например echo> hallo.txt

приводит к файлу с этими правами:

Path              : Microsoft.PowerShell.Core\FileSystem::\\rh-data-s01\Abteilungen\Neue Medien\hallo.txt
FileSystemRights  : WriteExtendedAttributes, ExecuteFile, DeleteSubdirectoriesAndFiles, ReadPermissions
AccessControlType : Deny
IdentityReference : NULL SID
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

Path              : Microsoft.PowerShell.Core\FileSystem::\\rh-data-s01\Abteilungen\Neue Medien\hallo.txt
FileSystemRights  : Write, Delete, Read, ChangePermissions, TakeOwnership, Synchronize
AccessControlType : Allow
IdentityReference : S-1-15-3-1024-1065365936-1281604716-3511738428-1654721687-432734479-3232135806-4053264122-3456934681
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

Path              : Microsoft.PowerShell.Core\FileSystem::\\rh-data-s01\Abteilungen\Neue Medien\hallo.txt
FileSystemRights  : ExecuteFile
AccessControlType : Deny
IdentityReference : S-1-5-32-4028125388-2803578072-1053907958-341417128-2434011155-477421480-740873757-3973419746
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

Path              : Microsoft.PowerShell.Core\FileSystem::\\rh-data-s01\Abteilungen\Neue Medien\hallo.txt
FileSystemRights  : ReadAndExecute, Synchronize
AccessControlType : Allow
IdentityReference : S-1-5-32-4028125388-2803578072-1053907958-341417128-2434011155-477421480-740873757-3973419746
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

Path              : Microsoft.PowerShell.Core\FileSystem::\\rh-data-s01\Abteilungen\Neue Medien\hallo.txt
FileSystemRights  : Read, Synchronize
AccessControlType : Allow
IdentityReference : Everyone
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

Для этого файла Windows предлагает «изменить порядок» прав доступа к файлу. Я просмотрел страницу разрешений posix, но не нашел решения.

Как мне создать файл, к которому можно будет получить доступ позже, без необходимости возиться с правами доступа?

По умолчанию cygwin пытается сопоставить списки ACL NTFS с разрешениями POSIX.

Из документы:

В NTFS права доступа к файлам оцениваются с помощью списков управления доступом (ACL), прикрепленных к файлу. Это можно отключить с помощью параметра «noacl» для соответствующей точки монтирования в файле / etc / fstab или /etc/fstab.d/$USER. Для получения дополнительной информации о правах доступа к файлам см. Раздел «Учетные записи POSIX, разрешения и безопасность».

Так что используйте noacl монтировать или сопоставьте свои Windows / NTFS с учетными записями POSIX:

Отображение Cygwin между SID и значениями uid / gid работает двумя способами.

Прочтите файлы / etc / passwd и / etc / group, если они существуют, как в былые времена, в основном для обратной совместимости.

Если файлы отсутствуют или в них отсутствует запись, спросите Windows.

По крайней мере, сейчас это поведение по умолчанию. Его можно настроить с помощью файла /etc/nsswitch.conf, который обсуждается в разделе «Файл /etc/nsswitch.conf». Давайте пока исследуем значение по умолчанию.

Если присутствуют файлы passwd или group, они будут сканироваться по требованию, как только потребуется сопоставление SID с uid / gid или именами учетных записей. Новый механизм никогда не будет считывать весь файл в память, а только сканировать запрошенную запись и кэшировать ее в памяти.

Если запись не найдена или отсутствует пароль или файл группы, Cygwin запросит ОС.

Это также можно сделать с учетными записями SMB или NFS. Так что просто выберите свой яд.