Ребят, ура!!!
Нашёл решение, всё дело в том, как и писалось в пользователе, под которым работал apache ли ещё что-то.
У меня стоит ISP Manager 5, на нём решил проблему так:
1. Авторизовался под root пользователем.
2. Зашёл во вкладку "Домены - www домены".
3. Далее в списке выбираем нужный домен, и нажимаем на иконку "Конфиг".
4. Появится окно редактора, в котором будет вот такая строчка:
AssignUserID user user
5. Здесь получается "user" может быть вашим именем пользователя, необходимо заменить её на:
AssignUserID apache apache
6. После я перезагрузил сервер, но можно просто перезапустить сервис (службу) httpd.
- После в папке можно создавать папки и файлы, если на неё стоят права CHMOD 777.
- Файлы можно изменять, только если на них стоят права 666.
- Новые файлы и папки создаются от имени пользователя и группы "apache".
P.S. Но такое действие нужно делать для каждого домена отдельно, если кто знает, как сделать, чтобы такое изначально прописывалось в конфиге, то сообщите пожалуйста.
На папку стоят права 755 [drwxr-xr-x]
А вот на счёт владельца, я тоже думаю, что из-за этого.
Мне кажется, нужно сделать так, что например группа "apache" должна иметь какой-то пониженный приоритет, чтобы не могла вообще ничего редактировать, кроме файлов, которые ему принадлежат или его группе. Ну и конечно мог редактировать ещё те файлы и папки, в которых стоят разрешение в публичных правах, когда например на файл стоит CHMOD 666, на папку 777.
У меня же сейчас есть файл 123.txt, владелец "user", группа "user", CHMOD 644, лежит в папке, у которой права CHMOD 755, владелец и группа "user", что в принципе означает, что никто не может редактировать файл, кроме самого пользователя "user" и "root". На деле же, пользователь или группа "apache" может его отредактировать без проблем.
Собственно и мысли такие, что у пользователя или группы "apache" завышены его приоритеты, то есть разрешено больше, чем нужно, в нашем случае больше, чем у пользователя "user".
Вообще я сервер не настраивал, был просто установлен ISP Manager, который сам установил всё программное обеспечение на сервер. Это чтобы было понятно, что я никуда не лазил, особо мозгов в этом нет.
P.S. Владельца и группу "user" я ввёл вымышленную, у меня она называется по другому. Пользователя "apache" я не вижу, но могу в панели управления выбрать, что он будет являться владельцем файла/папки.
Столкнулся с такой вещью, ранее я думал, что если поставить права на файл 644, то другой php файл не сможет его отредактировать и удалить, только прочитать.
Некоторое время я замечал изменение таких файлов, в них появлялись чужие куски кода, я понимал, что есть где-то дырка на сайте, думал неужели пароль от FTP у меня узнали, менял сразу же.
Но, сегодня решил разобраться с этим, создал PHP файл и понял, что он может редактировать абсолютно все файлы. Пошёл дальше, поставил на специальный файл парва доступа 444, и всё равно я смог его удалить через PHP.
Тестировал так, создал файл test.php в корне сайта и запускал его с браузера, то есть обработка была через Apache, также ещё установлен nginx через панель, в консоли не трогал, единственное что, увеличил в конфигурации максимально загружаемый вес файла.
-------------------------------- -----
Собственно вопрос, мне нужно сделать так, чтобы запуская PHP через браузер, он мог редактировать только те файлы и папки, на которые стоят права 666 и 777 соответственно.
Подскажите пожалуйста, как это сделать?
Ещё один не критичный вопрос: как для отдельных сайтов сделать запрет на чтение и изменения файлов выше корня сайта, например чтобы файл /var/www/test/test1.ru/index.php не смог прочитать или отредактировать/удалить файл /var/www/test/test2.ru/index.php
Этот вопрос не критичный, но всё же, если кто знает, то буду благодарен.
P.S. Панель управления ISP Manager 5 Lite, у них вопрос задавал, ответа нет. Сервер выделенный, то есть хостер мне не поможет.
В общем когда через SSH запускаю, то норм, можно отказаться или продолжить выполнение просто нажав на Enter, а как быть с кроном.
Есть ли вообще возможность поставить таймер на ответ, скажем если проходит 10 секунд, то скрипт больше не ждёт ввода от пользователя и продолжает работу?