Файлове (Част 1)

В РНР има два основни начина за съхраняване на данните- във файлове или в бази данни.

Данните могат да се съхраняват във файлове, тогава няма да ви се наложи да изучавате бази данни.:) Системата с бази данни безусловно е много по-мощна, отколкото база с файлове, но няма да повярвате колко много можете да направите, извличайки информацията от обикновените текстови документи на сървъра.

Права за достъп до файловете


С правата за достъп до файловете и директориите, се определя кой и какво може да прави с тях. Правата за достъп до файла (или директория) могат да бъдат:

  • права за промяна на файла или директорията (write)
  • права за четене на файла или директорията (read)
  • права за изпълнение (execute).

Файловете могат да се създават като изпълними, а за директориите, право на изпълнение означава, че можете да разгледате нейното съдържание.

Правата за достъп могат да се назначават на:

  • собственика на файла (този, който го е качил на сървъра)
  • групата, на която принадлежи файла (тя се определя от администратора на сървъра)
  • всички останали потребители.

Обикновено, по подразбиране, собственика на файла има права за четене и писане, а останалите- само на четене. Въпросът с за това кой има права за изпълнение на файл е пряко свързан с един от основните въпроси, а именно- въпросът за сигурността. На РНР не бива да давате такива права за достъп на принципа на случайността, защото интерпретатора на езика работи като модул на сървъра. Позволението за писане във файл също може да повлияе на сигурността и такива права се дават само в краен случай. Ще работим с файлове в текстов формат (.txt).

Създаване на файл


Създаването на файл в Линукс може да се осъществи по различни начини: в текстов редактор или чрез командите cat, print или echo, въведени в терминала.
  1. Отворете текстовия редактор.
  2. Създайте нов документ.
  3. Съхранете файла с име date.txt (няма да пишем нищо в него).
  4. Качете файла на сървъра.

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

В зависимост от ситуацията можете да използвате няколко начина за задаване на права за достъп към файла:

  • Ако сте с операционна система Windows, можете да промените правата за достъп до файла, като кликнете върху него с десен клавиш на мишката и от контекстното меню изберете Свойства, след това Сигурност.
  • Ако сте с Linux, това става с командата chmod, въведена в терминала.
  • Ако ползвате хостинг услуга, обикновено доставчиците на хостинг услугата ви осигуряват панел за управление откъдето можете да управлявате сайта си.

Тъй като Линукс разбира PHP много по-добре от Windows, ние ще говорим за даване на права за достъп в операционна система Линукс (в частност за Ubuntu 12.04, но принципът е същия за останалите дистрибуции).

Така е и в живота. С някои хора се разбираш добре, с други ... не толкова, а с трети ... чувстваш абсолютна несъвместимост, водеща до алергични състояния и вътрешни обриви, които се лекуват само с премахване на дразнителя. :)

А когато чувстваш, че ти си дразнителя ...? :)

Всеки сам взема решениe как да постъпи в една или друга ситуация и търпи последствията.

UMASK (User Mask или User file creation MASK)


Какво е UMASK?

Това са подразбиращите се права, т.е. правата, които се задават от Линукс при създаването на даден файл (или директория).

Минималната и максималната стойност на UMASK за директориите (папките) са 000 и 777. Минималната и максималната стойност на UMASK за файловете са 000 и 666. Защо 666 е максималната стойност за файл? Защото само на скриптовете и на бинарните файлове са им необходими права за изпълнение. Обикновените файлове се нуждаят само от права за четене и писане. Директориите изискват права за изпълнение, за да може да се разгледа съдържанието им, поради което максималната стойност на UMASK за тях е 777.

Повече за UMASK: въведете в терминала man umask или info umask, или на адрес https://en.wikipedia.org/wiki/Umask.

sign.png

Няма коментари:

Публикуване на коментар