Решено: права на создание файла в каталоге

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Решено: права на создание файла в каталоге

Сообщение azsx »

У меня на дебиан 7 запускается простой php скрипт

Код: Выделить всё

<?php
$sam_file = "new_kat/new_fl.txt";
file_put_contents("$sam_file","hello\n", FILE_APPEND);
?>

При этом обязательно нужно чтобы каталог new_kat имел права 0777.
1. Почему так много прав надо и можно ли это как то исправить? Ну чтобы 0644 было или 0755 хотя бы
2. Чем опасен на сервере каталог с правами 0777?
Заранее спасибо за ответы.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Решено: права на создание файла в каталоге

Сообщение Hephaestus »

azsx писал(а):
18.11.2014 11:15
При этом обязательно нужно чтобы каталог new_kat имел права 0777.
Не понял, кому нужно? Вам нужно или скрипту нужно?
Если Вам нужно, то вот этот вопрос
azsx писал(а):
18.11.2014 11:15
1. Почему так много прав надо и можно ли это как то исправить?
выглядит странно.
А если скрипту нужно (то есть иначе не желает делать), то рискну предположить, что umask способен повлиять на ситуацию.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Решено: права на создание файла в каталоге

Сообщение azsx »

нужно счкрипту, я как раз считаю, что 0777 которые я задаю вручную - это много. Буду смотреть.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: права на создание файла в каталоге

Сообщение Bizdelnick »

Вам нужно записать информацию в файл и при этом, возможно, создать его, если он отсутствует. Для создания файла пользователь должен иметь право записи в каталог. Значит нужно дать этому пользователю (и только ему) такое право. Не зная подробностей, сложно сказать. какой вариант будет оптимальным, поэтому приведу все в порядке предпочтительности:
  • Сделать пользователя владельцем каталога и выставить права 755 (или даже 700, при необходимости).
  • Сделать группу, в которой состоит пользователь, группой-владельцем каталога, и выставить права 775.
  • Использовать ACL, чтобы дать конкретному пользователю право на запись в каталог, не меняя его владельцев.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Решено: права на создание файла в каталоге

Сообщение azsx »

разве я на сервере и php скриптзапущенный в апаче - это не один и тот же пользователь?
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Решено: права на создание файла в каталоге

Сообщение SLEDopit »

azsx писал(а):
18.11.2014 14:23
разве я на сервере и php скриптзапущенный в апаче - это не один и тот же пользователь?
это зависит от настроек вашего апача.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: права на создание файла в каталоге

Сообщение Bizdelnick »

azsx писал(а):
18.11.2014 14:23
разве я на сервере и php скриптзапущенный в апаче - это не один и тот же пользователь?

По умолчанию - нет. В Debian апач работает от юзера www-data, в других дистрибутивах это может быть httpd, apache или ещё кто-то.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Решено: права на создание файла в каталоге

Сообщение azsx »

В Debian апач работает от юзера www-data

у меня работает от www-data. хм... надо подумать.
----------------------
получилось

Код: Выделить всё

sudo chown -R www-data:www-data ./new_kat
sudo chmod -R 0744 ./new_kat

после этого программа на php пишет в каталог. Однако не понятно:
1. Является ли 0744 полностью безопасным? Ну чтобы мне хакеры туда какой скрипт не записали и не запустили его.
2. Почему на шаредах нет такой проблемы? апач можно настроить на запуск от текущего пользователя? Или какой то другой способ есть? Надо использовать ACL да?
зы
уточню про хакеров - это записываются комментарии.
Спасибо сказали:
Akradgash
Сообщения: 1
ОС: Debian

Re: Решено: права на создание файла в каталоге

Сообщение Akradgash »

Всем привет!
Извиняюсь за некропостинг...
У меня вопрос такой же как у Azsx'a... Является ли 744 безопасными правами? Или есть другой вариант действий, чтобы обезопасить себя от выполнения скриптов хакеров....
Я задал такой вопрос, т.к. никто не ответил на сообщение Azsx'a, и написали в названии темы "Решено"...
Жду ответа :)
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2600
ОС: Gentoo

Re: Решено: права на создание файла в каталоге

Сообщение ormorph »

Akradgash писал(а):
28.09.2017 13:43
Всем привет!
Извиняюсь за некропостинг...
У меня вопрос такой же как у Azsx'a... Является ли 744 безопасными правами? Или есть другой вариант действий, чтобы обезопасить себя от выполнения скриптов хакеров....
Я задал такой вопрос, т.к. никто не ответил на сообщение Azsx'a, и написали в названии темы "Решено"...
Жду ответа :)

Все могут читать, только пользователь может писать, читать и выполнять...
Для локального доступа не безопасно, так как можно посмотреть содержимое скриптов всем кому не лень.
Для сервера, кто знает...
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Решено: права на создание файла в каталоге

Сообщение SLEDopit »

Akradgash писал(а):
28.09.2017 13:43
Является ли 744 безопасными правами?
Что вы понимаете под "безопасными правами"?
Если в вашем скрипте дыра, позволяющая запускать код, и злоумышленник нашёл её, то он автоматом получает права аналогичные правам скрипта и может писать данные везде, где есть доступ у скрипта. В этом случае 744 не спасут вас.
Если на вашем сервере крутится 100500 сайтов, но апач настроен так, что все запускается под одним и тем же пользователем, то 744 тоже не спасут от атаки. Взломают другой сайт, и через него сразу получат доступ ко всем.

Таких ситуаций можно придумать воз и маленькую тележку.

Но если что, то 744 в разы безопаснее 777.

ormorph писал(а):
28.09.2017 17:05
Для локального доступа не безопасно, так как можно посмотреть содержимое скриптов всем кому не лень.
Для сервера, кто знает...
Скорее наоборот. Локально в большинстве случаев работает только один пользователь. А вот на сервере (особенно на каком-нибудь шареде), кто знает...
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2600
ОС: Gentoo

Re: Решено: права на создание файла в каталоге

Сообщение ormorph »

SLEDopit писал(а):
28.09.2017 20:43
Если в вашем скрипте дыра, позволяющая запускать код, и злоумышленник нашёл её, то он автоматом получает права аналогичные правам скрипта и может писать данные везде, где есть доступ у скрипта. В этом случае 744 не спасут вас.

Ну и я ж про то же, разницы не вижу между 700 и 744, если получит права пользователя то нет ни какой разницы.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: права на создание файла в каталоге

Сообщение Bizdelnick »

SLEDopit писал(а):
28.09.2017 20:43
Если на вашем сервере крутится 100500 сайтов, но апач настроен так, что все запускается под одним и тем же пользователем, то 744 тоже не спасут от атаки. Взломают другой сайт, и через него сразу получат доступ ко всем.

Если апач работает под пользователем, у которого нет прав записи в каталоги со скриптами (а так и должно быть, хотя об этом почти всегда забывают), то не получат.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
lone_wolf
Сообщения: 206

Re: Решено: права на создание файла в каталоге

Сообщение lone_wolf »

Bizdelnick писал(а):
28.09.2017 21:10
Если апач работает под пользователем, у которого нет прав записи в каталоги со скриптами (а так и должно быть, хотя об этом почти всегда забывают), то не получат.

Если я всё правильно понял, то нужно apache запускать от пользователя скажем apache, а вот на каталог с скриптами назначить пользователя script и виртхост запускать от пользователя script при условии что на сервере 1 сайт. Ну или script1, script2 и т.д. если несколько сайтов?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Решено: права на создание файла в каталоге

Сообщение Bizdelnick »

lone_wolf писал(а):
29.09.2017 09:06
Если я всё правильно понял, то нужно apache запускать от пользователя скажем apache, а вот на каталог с скриптами назначить пользователя script и виртхост запускать от пользователя script при условии что на сервере 1 сайт. Ну или script1, script2 и т.д. если несколько сайтов?

Да, в идеале так. К сожалению, некоторые CMS могут требовать прав на запись в каталог со скриптами, отдельные файлы или какие-то подкаталоги, с этим надо разбираться отдельно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить