Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


Операционна система Linux Ubuntu има ясна структура на разположение на директории и файлове. Много начинаещи мигрирали към Linux се сблъскват с трудности относно смисъла на всеки отделен каталог. Това ме подтикна да напиша следната статия.

Какво е каталог в 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. Дървото на нейното построение.

Ubuntu file system 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 (само притежателят на каталога може да чете, да пише и да изпълнява), то никой няма да успее да прочете файла, освен притежателя му.






до нови срещи   ^.^
17.09.2012 profruit 


0 Response to "Каталог в Linux"

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

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога