Правата за достъп до файлове и директории в UNIX-подобни операционни системи

Всяка Linux операционна система има определена структура на директориите и всяка директория има определена функция. В Линукс има два типа директории: системни и потребителски. Системни са тези директории, които се създават при инсталирането на операционната система като например директориите /dev, /bin, /lib и т.н. Потребителски са директориите, които се създават от потребителите на операционната система с цел да пазят собствена информация в тях. Такава е директорията /home/user и всички поддиректории вътре в нея. Много важно място в структурата на операционната система заемат правата на директориите и файловете. От тях зависи сигурността на цялата система и дали даден потребител може да изпълнява скриптове или да чете файлове. В повечето директории обикновеният потребител има права само за четене, но не и за изпълнение и запис. В някои от директориите като /root например обикновените потребители нямат никакви права. Те имат пълни права на файловете единствено в собствените си директории, благодарение на което е невъзможно инсталирането и изпълнението на зловреден софтуер, който може да навреди на цялата операционна система. В този случай вирусите биха навредили единствено на самия потребител, който ги изпълнява.

Сега е момента да уточним какво е това право на потребителя, видовете права и как се задават.

Всеки файл има 3 вида права за потребителя, 3 за групата и 3 за всички останали. Тези права са:

право за четене (r) - read

право за запис (w) - write

право за изпълнение (х) - execute

В графичен вид изглежда по следния начин:

Собственик |Група |Всички останали| r |w |x |r |w |x |r |w |x| | | | | | | | ||

Правата на всеки потребител може да се видят с командата ls –l

drwxr-x--x 11 dani dani 4096 Apr 22 21:35 mail

dr-xr-xr-x 2 dani dani 4096 Jun 7 17:42 perl5

-rw-r----- 1 dani users 739 May 9 2008 php.ini

drwxr-xr-x 5 dani dani 4096 Apr 21 12:45 public_ftp

drwxr-x--- 13 dani nobody 4096 May 31 12:04 public_html

drwxr-xr-x 8 dani dani 4096 Apr 22 21:20 tmp

drwx------ 2 dani dani 4096 Apr 18 12:02 work

-rwxr-xr-x 2 root root 4096 Apr 18 12:02 .htaccess

Буквата “d” в началото обозначава директориите, а ”-” – същинските файлове.

В горния пример собственик на файла php.ini е „dani”, като той може да чете и променя този файл. Групата на файла е „users” и всички от тази група могат да четат файла, но нищо друго. Всички останали нямат никакви права.

В Linux операционна система правата се задават със следната команда:

chmod 755 php.ini

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

Друг начин за промяна правата е чрез FTP клиент, където също има такава опция.

Всяка цифра отговаря на определени права:

0 - Няма право да чете, няма право да пише, няма право да изпълнява

1 - Няма право да чете, няма право да пише, може да изпълнява --x

2 - Няма право да чете, може да пише, не може да изпълнява -w-

3 - Няма право да чете, може да пише и изпълнява -wx

4 - Има право да чете, не може да пише и няма право да изпълнява r--

5 - Има право да чете, няма право да пише и може да изпълнява r-x

6 - Има право да чете, има право да пише, не може да изпълнява rw-

7 - Има права за четене, писане и изпълняване rwx

Освен промяна на правата, понякога се налага да се променят и собственика или групата на файла. Това става с командата:

chown dani:users php.ini

“dani” е собственика, а “users” е групата.

За по-голяма сигурност препоръчителните права са 755 за директории и 644 за файлове.

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