Linux не может удалить файлы, созданные www-data - PullRequest
3 голосов
/ 22 октября 2010

У меня есть веб-сервер под управлением Ubutu 10.04 и Apache2 и PHP.

Когда я загружаю файл на сервер через PHP, он создает его с помощью 'rwxr-xr-x' и 'www-данные www-data 'как пользователь и группа.

Я добавил свою учетную запись администратора в группу www-data.

Однако, когда я захожу на свой серверчерез SSH и попробуйте удалить один из созданных файлов, он говорит «Отказано в доступе»?Даже если я применю к нему разрешение «0777», я все равно не смогу удалить файл.

Единственный найденный мной способ, позволяющий мне удалить файл, - это ВЫБРАТЬ файл в учетную запись администратора.,Очевидно, я не хочу делать это для каждого загруженного файла, или действительно CHMOD для каждого файла в '0777'.

То, что я делаю здесь неправильно, не позволяет мне создать файл, а затем удалить егоиспользуя другой аккаунт?

1 Ответ

6 голосов
/ 22 октября 2010

Возможность удаления файлов определяется не разрешениями для файла, а разрешениями для содержащего каталога.

Каковы разрешения и владелец / группа родительского каталога?Это те разрешения, которые вам понадобятся.

При просмотре разрешений, перечисленных в вашем комментарии, вам нужно либо добавить разрешения на групповую запись для группы www-данных группы (хотя здесь необходимо учитывать соображения безопасности), либодобавьте себя в файл sudoers, чтобы ваша учетная запись могла выполнять команды от имени пользователя www-data

EDIT

Разрешения, с которыми создается каталог, будут зависеть от ваших текущих настроек umask.Вы можете изменить umask, чтобы разрешить создание файлов с произвольными разрешениями следующим образом: -

$old = umask(0);
mkdir(date("Y", time()), 0775)
umask($old);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...