Создайте / файлы Редактирования в определенной папке с помощью другого пользователя / группа

Хинду, который может дать Вам значительную скорость и преимущества настройки, высоко желаемые для встроенной/тонкой платформы.

1
23.12.2011, 18:58
1 ответ

Можно настроить каталог так, чтобы файлы, созданные в нем, принадлежали конкретной группе независимо от эффективного идентификатора группы процесса, который создает их. Это называют семантикой BSD, и необходимо установить бит SGID, чтобы каталог включил его:

chgrp domain /var/www/domain
chmod g+s /var/www/domain

Это не изменяет группу файлов и каталогов уже в /var/www/domain, необходимо будет заботиться о том вручную (например, использование -R с chgrp выше). Обратите внимание, что все подкаталоги, впоследствии созданные в каталоге, также наследуют SGID, автоматически включая семантику BSD для помощников директора также.

Та же семантика не возможна для владельца, все же.

Если необходимо достигнуть этого и для владельца и для группы, вероятно, необходимо удостовериться, что код, который создает файлы под /var/www/domain выполнения с эффективным пользователем domain и эффективная группа domain. Можно использовать sudo сделать это:

sudo -u domain -g domain your_command

Если domain основная группа пользователя domain, следующее будет достаточно

sudo -u domain your_command

Так как это решение легко заботится и о владельце и о группе, там не потребность в семантике BSD.

Если Вы не хотите изменять эффективного пользователя и группу процесса, который создает файлы (например, потому что это - большой сервер, выполняющий много других несвязанных функций), Вы, возможно, должны воплотить часть функциональности, которая создает файлы в отдельный процесс, эффективный UID которого и GID могут быть изменены соответственно, или можно использовать семантику BSD и попытаться достигнуть конечной цели путем надежды только на группу.

2
27.01.2020, 23:40
  • 1
    я немного посмотрел на это, но я не полностью понимаю это. Я соединяюсь с сервером с помощью winscp с учетной записью www-admin. Большую часть времени я работаю над различными папками и файлами в системе. Я не могу сделать sudo -u domain -g domain для каждого файла в папке. Таким образом, если я понимаю это правильно нет никакого способа сделать это. Я не делаю undrstand, что Вы имеете в виду с Вами, возможно, должен воплотить часть функциональности, которая создает файлы –  Saif Bechan 24.12.2011, 07:14
  • 2
    Ну, я не знал то, что создает файлы. Если бы они создавались большим монолитным сервером затем, то необходимо было бы удостовериться, что меньший процесс создает файлы вместо этого так, чтобы его полномочиями можно было легко управлять. Это, кажется, не применяется в Вашем случае так или иначе. –  Adam Zalcman 24.12.2011, 12:22
  • 3
    Можно, вероятно, использовать в своих интересах SGID и семантику BSD, если winscp явно не устанавливает владение группы. Я протестировал scp от Mac до Linux, и он не делает, таким образом, возможности являются winscp, не должен делать этого также. В этом случае Ваши файлы будут принадлежать www-admin:domain. Возможно, соответствующая установка разрешения позволит Вам использовать это для выполнения конечной цели? А-ч –  Adam Zalcman 24.12.2011, 12:26
  • 4
    Сделайте Вы думаете, что существует способ, которым я могу sudo другому пользователю в winscp. Я проверил, и проблема группы решена с Вашим методом, но на самом деле пользователь был самой важной частью. Файлы не могут принадлежать www-admin из-за соображений безопасности. Сделать это более сложным пользователь domain не имеет никакого разрешения входа в систему. –  Saif Bechan 26.12.2011, 07:01
  • 5
    Необходимо будет войти в систему оболочки или по крайней мере использовать SSH для удаленного выполнения команд sudo. См. Терминальный Доступ SSH в WinSCP. –  Adam Zalcman 26.12.2011, 13:51

Теги

Похожие вопросы