3

Мне интересно, почему все еще можно увидеть мой tar-файл, если он принадлежит root и chmoded до 600.

У меня есть Apache, и мой сервер Ubuntu 12.04.

Любое объяснение этого поведения?

родительская папка принадлежит www-данным.

Спасибо!

3 ответа3

1

Вы должны проверить пользователя, который запускает демон apache, возможно, он был запущен от имени пользователя root.

0

Чтобы устранить неполадки, попробуйте создать новый файл, который Apache не должен позволять загружать.

touch test.tgz
sudo chown root:root test.tgz
sudo chmod 600 test.tgz

Если вы не можете загрузить тестовый файл, это просто какое-то кэширование. Файл может кэшироваться на вашем клиентском компьютере, на сервере или на любом другом промежуточном компьютере.

Если вы не можете получить доступ к одному и тому же файлу с помощью прерывателя кэша (например, example.com/countdown.tgz?test), никто другой не сможет его скачать.

0

Я не всем знаком с тем, как Apache внутренне отображает список файлов, но я знаю, как он работает на уровне файловой системы.

Если вы будете пользователем www-data и перейдете в каталог, в котором вы изменили разрешения, и создадите список файлов с помощью ls, вы все равно увидите файл tar, если он равен 600 и принадлежит root.

Разрешение на чтение только говорит о том, что вы можете прочитать содержимое файла. Файловая система хранит список файлов в каталоге внутри каталога "файл". Если у вас есть разрешение на чтение в каталоге, вы можете перечислить все файлы в этом каталоге, это не значит, что вы можете читать каждый файл.

Если вы хотите, чтобы файл был скрыт, вы либо называете его точкой - что-то вроде .myfile.tar (но Apache может также отображать скрытые файлы), либо перемещаете его в другое место.

Также вы можете создать подкаталог, принадлежащий root, и с группой, принадлежащей той же группе, что и www-data, со следующими правами 730. 3 означает доступный для записи и выполнения, в каталоге это означает, что вы можете изменить его структуру (создать или переименовать файл), потому что вы можете написать внутри каталога "файл" и получить доступ к его подэлементу (это то, что x обозначает в каталоге). Таким образом, даже пользователь www-data может переместить ваш tar-файл в этот подкаталог, но Apache не может вывести его содержимое. И www-data может даже продолжить редактирование файла, если он помнит его имя!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .