Какво е каталог в Linux?
В Linux това е обикновен файл, съдържащ списък с имена на файлове и подкаталози. Срещу всяко име стои указател на физическото им разположение на диска в ОС-ма. Спокойно може да считаме каталога като съдържание от рода име => физическо местоположение. Това е и нищо повече. Каталогът не съдържа непосредствено потребителите и правата за достъп на своите файлове, но съдържа два задължителни елемента "." и "..".
Първият е името на самия каталог, който указва своето физическото разположение, а втория държи указателя към родителския каталог. Нека погледнем резултата на команда ls -la.
profruit@prodesktop:~$ ls -la total 1053 drwxr-xr-x 73 profruit profruit 3504 2012-09-17 17:47 . drwxr-xr-x 3 root root 72 2011-06-18 16:38 .. drwxr-xr-x 2 profruit profruit 152 2012-08-08 21:14 .acetoneiso drwx------ 3 profruit profruit 80 2011-06-18 17:44 .adobe drwxr-xr-x 3 profruit profruit 104 2011-09-02 18:03 .android drwx------ 2 profruit profruit 72 2012-08-24 16:49 .aptitude -rw-r--r-- 1 profruit profruit 98 2012-03-18 23:14 bad-blocks ... drwxr-xr-x 9 profruit profruit 728 2012-09-17 17:46 Desktop -rw-r--r-- 1 profruit profruit 78 2012-09-17 09:46 .dmrc drwxr-xr-x 7 profruit profruit 304 2012-09-01 09:40 Documents drwxr-xr-x 25 profruit profruit 1792 2012-09-08 09:19 Downloads ... -rw-r--r-- 1 profruit profruit 992 2012-09-10 21:37 .xchm -rw-r--r-- 1 profruit profruit 26166 2007-01-02 07:04 xhtml.tags -rw------- 1 profruit profruit 23108 2012-09-17 17:50 .xsession-errors -rw-r--r-- 1 profruit profruit 63401 2012-09-15 11:13 Мисли
Обърнете внимание как започва отговора.
Структура на файлова система Ubuntu
Tази снимка дава нагледна представа как изглежда отвътре операционна система Linux Ubuntu 10.04. Дървото на нейното построение.
Съответни разяснения кой каталог за какво служи.
ROOT. Главен каталог.
Този каталог съдържа основните команди на операционната система. Например, команди на файловата система (ls, cp, cd и т.н.) или команди на обвивката/обкръжението.
Тук се съхраняват образите на Linux-ядрата и boot-мениджъра за стартиране на системата - GRUB 2.
Каталог синоним на /media/cdrom. Linux разглежда всичко като файл, дори монтирането на медия, чрез оптичен дисковод. На практика това е указател/пряк път към споменатото устройство.
Каталог, съдържащ файлове на устройства, включени към операционната система. Хардуерът в Linux също се възприема като файл, а достъпа към него (принтер, скенер, твърд диск и т.н.) изисква наличие на специален файл.
Тук се намира основната част от конфигурационните файлове на операционната система (настройка на мрежата, списък с потребители, групи и т.н.) и на различни програми (Apache, Samba и т.н.).
Този каталог съдържа личната информация на текущия потребител на операционната система. Снимки, документи, музикални файлове (виж снимката горе: Documents, Music, Pictures, Downloads). За идващите от света на Windows това е аналог на My Documents.
По идея притежателят на машината може да съхранява личната си информация в произволно място по избор. Каталог /home от препоръчителен клони към длъжен, за да се поддържа безопасността на системата така. Добър тон е този каталог да се монтира в отделен раздел на твърдия диск.
Предназначението на този каталог е да съхранява системни библиотеки, необходими за работа на програми от каталози /bin, /sbin и операционната система в цялo.
Предназначението на този каталог е за автоматическо монтиране на различни устройства: USB-дискове, DVD/CD-ROM. Съдържанието на изброените устройства автоматически се включват в вложените подкаталози на упоменатия.
Този каталог е пуст и се ползва за ръчно включване на устройства вследствие на команда mount.
Каталог за програми, изискващи голям дисков обем или за спомагателни пакети.
В този каталог се монтира виртуална файлова система procfs.
Това е домашния каталог на суперпотребителя и винаги го има. Идеята е същата като при потребителя. В случай на проблем при достъп до каталог /home винаги може да се влезе в системата като суперпотребител за разрешаване на възникналата ситуация с достъпа.
Security-Enhanced Linux (SELinux) е Linux особеност, която предлага разнообразие към политиката за сигурност включена в U.S. Department of Defense. Ubuntu e дистрибуция, която се придържа към тази мярка за повишена безопасност. Каталогът има смисъл само ако SELinux е инсталиран в операционната система и първоначално е празен.
Основни системни програми за администрация и настройка на операционната система (iptables, ifconfig и т.н.).
Каталог, съдържащ специфични за обкръжението на операционната система параметри
В този каталог се монтира виртуална файлова система sysfs, добавяща в пространството на потребителя информация към ядрото на Linux за присъстващите в операционната система устройства и драйвери. Налична е за версии на ядрото над 2.6.
Временно хранилище на данни. Аналог на папка C:/Windows/Temp в Windows. Всички потребители имат права на четене и на запис в този каталог.
Каталогът съдържа всички инсталирани пакети на програми, документации, изходен код на ядрото и система X Window. Всички потребители освен суперпотребител-root имат достъп само за четене.
- /usr/bin - допълнителни програми
- /usr/games - достъпни компютърни игри на ОС-ма
- /usr/include - специални файлове на C++
- /usr/lib - системни библиотеки
- /usr/local - инсталирани пакети за локалната машина
- /usr/sbin -допълнителни системни програми
- /usr/share - общи данни на инсталираните програми
- /usr/share/icons - системни иконки
- /usr/share/doc - помощна документация
- /usr/src - изходен код на ядрото
Каталог за често променящи се данни. Журнали на операционната система, системни log-файлове, cache-файлове и т.н.
R-W-X атрибути
Всеки файл има три атрибута (r, w, x) и същото важи за каталога.
Атрибут R разрешава да получите списъка с имена от файлове и подкаталози в каталога, но не дава сведения о физическото разположение на елементите. Мислете за него като PHP функция array_keys(). Тя връща всички ключове на масива-каталог, но не дава информация за значенията им. И след като нямаме тази информация ние не достъпваме файловете на практика. Няма как да разберем къде точно са разположени, нали?
Атрибут W разрешава създаване, преименуване и изтриване на файлове вътре в каталога. Няма никакво значение какви са същинските права на управляваните файлове. Просто каталогът не ги държи. С подкаталозите нещата обаче настръхват, защото премахвайки някакъв dir, заличавате ".", а тук вече са нужни права (w) над този dir. Ако ги нямате - няма да може да го изтриете, но ще можете да преименувате dir все пак.
Атрибут X е този, който държи физическото разположение на съдържанието на каталога по неговото име. Мислете за него като PHP-оператор $array['name'], при което $array е масив-каталог, а name - името на файла или подкаталога. Този оператор държи значение, съотвествуващо на указателя на файла или подкаталога.
А сега фокус от Linux.
С помощта на споменатия оператор по никакъв начин няма да разберете какви ключове се съдържат в масива-каталог, но с увереност можете да се обърнете към даденото значение след като е известно предварително. Магията се заключава, че няма да виждате съдържанието, но ако знаете пълния път до файла ще можете да го достъпите.
Описаната трактовка на механизма на работа на атрибутите, обяснява защо на практика атрибути R и X вървят ръка за ръка. Назначават се едновременно или се пак така се свалят.
Например, обратният фокус стои така
Файл /home/www/somefile.php има права 0777 (всеки един може да чете, да пише и да изпълнява), а каталог /www/ идва с права 0700 (само притежателят на каталога може да чете, да пише и да изпълнява), то никой няма да успее да прочете файла, освен притежателя му.
до нови срещи ^.^
0 Response to "Каталог в Linux"
Публикуване на коментар