Я потратил часы на поиски ответа на эту проблему, прежде чем решил создать учетную запись и спросил себя:
ОС: Ubuntu 18.04
У меня есть папка с именем «серверы»
Внутри этой папки файлы создаются и редактируются процессом под пользователем «pufferd» (игровой сервер на платформе PufferPanel)
Я хочу позволить другим пользователям изменять, создавать и удалять файлы. в этой папке через FTP (я не хочу использовать SFTP, предоставленный PufferPanel)
Однако, все, что я нашел и попробовал, не позволило псевдо «двойное владение» этой папкой.
Я попытался изменить разрешения, я попытался установить группу владельцев папки, казалось бы, невозможно позволить обоим пользователям создавать файлы и быть взаимозаменяемыми без каких-либо проблем с разрешениями.
Файлы, загруженные через пользователя FTP, доступны только для чтения «pufferd»
Файлы, созданные «pufferd», доступны только для чтения пользователю FTP.
Какое самое простое решение для этого? В идеале все файлы в папке, независимо от владельца или источника создания (созданные сервером, загруженные ftp или другие), доступны для чтения, записи и выполнения каждому пользователю, имеющему доступ к папке.
Нет такой вещи как совместное владение в Linux.
Вы должны будете или поместить обоих пользователей в одну группу и добавите права доступа для группы или позволите всем пользователям (=others) получать доступ к файлам.
Для установки прав для недавно созданных файлов можно использовать Списки управления доступом (acl
) изменить (-m
) значение по умолчанию (-d
) права доступа:
setfacl -d -m g:groupname:rwx /path/to/servers
Я на самом деле не использовал бы rwx
но rwX
, значение папок может быть выполнено (7
), и файлы не будут (6
).
Вы могли также позволить "другим" получать доступ ко всем файлам:
setfacl -d -m o::rwX /path/to/servers
Средства по умолчанию, все новые файлы и каталоги получат эти права. Это уже не влияет на файлы на месте.