Могу ли я использовать setuid или sticky, чтобы сделать файл, созданный PHP, определенным пользователем? - PullRequest
2 голосов
/ 13 июля 2011

Я использую WordPress и хочу, чтобы файлы, созданные WordPress, имели пользователя файла, который их создал, а не пользователя, на котором работает веб-сервер. Например, мои файлы и каталоги WordPress принадлежат philip в группе www-data. Когда WordPress создает файл, я хочу, чтобы его владельцем было philip, а не www-data.

Возможно ли это? Я подозреваю, что это может быть достигнуто с setuid или sticky bit, но я не уверен, как его применить.

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Не без особых лишних усилий. Из того, что вы описываете, похоже, что вы, вероятно, используете PHP с помощью mod_php или чего-то подобного; это всегда будет работать на веб-сервере, как пользователь веб-сервера. setuid / setgid работают, только когда выполняется новый процесс, а здесь это не так.

Вы можете обойти это, запустив PHP с использованием CGI или FastCGI (что позволит вам запускать все PHP-скрипты от имени своего собственного пользователя), но это слишком много дополнительных настроек, в которые вы, вероятно, не захотите заходить.

0 голосов
/ 13 июля 2011

Если вы не хотите, чтобы у группы был доступ, вы можете использовать бит закрепления, чтобы установить g-rwx. Проблема с setgid (вы просили изменить группу, а не пользователя) заключается в том, что пользователь, выполняющий команду, должен иметь права для назначения этой группы. Если вы не хотите, чтобы веб-сервер (то есть www-data) имел доступ, то вы, вероятно, не хотите менять gid на любую группу, к которой у него есть доступ. В противном случае вам потребуется другой процесс с другими привилегиями и внести это изменение для веб-сервера через cron или другой планировщик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...