Управљати сервером значи упознати се и управљати оперативним системом који се на серверу налази. Хајде да видимо како изгледа сервер након чисте инсталације CentOS оперативног система и чему служе линукс директоријуми који се ту налазе. Овде је све још увек прилично просто. На серверу је инсталиран оперативни систем који има своје директоријуме (фолдере).

Cent OS је бесплатни оперативни систем и можете га добити слањем тикета вашем провајдеру или реинсталацијом из контролне табле – уколико ваш пакет подржава ову опцију. За текст је коришћен VPS сервер, али ви за неко прво тестирање и учење можете слободно користити Virtualbox.

Покренути команду за приказ директоријума

Ако желите да видите  шта имате на серверу сада када више није потпуно празан, урадите ово што је записано испод. Успут ћемо научити како да видимо у којем се директоријуму налазимо, како да скочимо у одређени директоријум и како да излистамо фајлове уз помоћ три сличне команде:

  1. Приступите серверу преко SSH повезивања. (Како да се повежем на сервер преко SSH?)
  2. Проверите где се налазите куцањем pwd команде (print working directory)
  3. Уђите у корен (енгл. root) тако што ћете укуцати cd / и стиснути Ентер
  4. Укуцајте ls команду и стисните Ентер да видите листу свих директоријума у /
  5. Или укуцајте ll или ls -l и стисните Ентер

Ево како то изгледа када се ради у конзоли која је преко SSH већ повезана на сервер:

Шта се налази у Линуксовим директоријумима

/ директоријум, који се означава као коса црта је корен свих директоријума, односно директоријум који садржи све остале. Сви остали директоријуми се означавају као /bin, /dev, /boot зато што се налазе унутар / директоријума. Иако се зову исто овај корени директоријум (корен – root) не треба мешати са /root директоријумом.

/bin директоријум садржи бинарне извршне фајлове, низ есенцијалних (кључних, основних, важних) команди које користе администратори система али и непривилеговани корисници. Најчешће коришћене команде су  cp, mv, rm, cat, ls али садржи и шелове (енгл. shell, shells) као што су bash и csh. Овде су и chgrp, chmod, chown за управљање привилегијама и припадношћу. Такође, овде се налази и hostname који ћете користити када први пут подешавате сервер, али и kill што ћете често користити.

/boot директоријум садржи све битне фајлове који су потребни за процес покретања система – за бутовање (енгл. boot). Овде се не налазе конфигурациони фајлови који нису потребни за процес бутовања. У овом директоријуму налазе се фајлови који су потребни систему пре него што кернел започне извршавање user-mode програма. У празној инсталацији CentOS-a овде је само /boot/grub директоријум.

/dev је локација за фајлове уређаја. На Линуксу (CentOS је Линукс) је све или фајл или фолдер. На пример, ако имате линукс на рачунару овде можете видети sda , sdb и ово су хард-дискови, sda1, sda2 и ову су партиције на хард-диску или /dev/cdrom што је читач дискова.

/etc садржи системске конфигурационе фајлове који су распоређени у овом директоријуму или његовим поддиректоријумима. Конфигурациони фајл контролише операцију програма и мора да буде статички, не може да буде у извршном бинарном облику.

/home директоријум служи за корисничке фајлове. С обзиром на то да је Линукс вишекориснички, сваком кориснику се додељује директоријум доступан одређеном кориснику или администратору. Када се направи нови корисник /home добија поддиректоријум по моделу /home/$USER (/home/ivan или /home/voja, дакле /home/korisnik). Овде можете да се играте. У стварном животу овде држите филмове и музику.

/lib и /lib64 , овде су кернелски модули и дељене библиотеке које су потребне за покретање система и извршавање команди у кореном датотечном систему, као што су оне команде које се налазе у /bin и /sbin директоријумима (погледати /bin и /sbin).

/lost+found Уколико дође до пада система било због грешке у самом систему или пада напона (нестанак струје), при следећем покретању система ради се аутоматски „filesystem check“ преко fsck (енгл. file system consistency check). Fsck ће проћи кроз систем и покушати да поправи све корумпиране фајлове. Резултат те поправке биће смештен у овај директоријум.

/media директоријум садржи све прикључне тачке (енгл. mount point) за уклоњиве медија уређаје. /media за разлику од /mnt врши аутоматско прикључивање. На пример, када убодете USB drive, он се појави у листи доступних уређаја.

/mnt је генеричка тачка прикључка (енгл. mount point) за све уређаје и датотечне системе. Прикључивање (енгл. Mounting) је омогућавање да неки уређај/датотечни систем постане доступан систему на који се прикључује. Након што се прикључи, датотечни систем тог уређаја бива доступан и може да му се приступи преко тачке прикључка.

/opt директоријум је резервисан за све додатне пакете који не долазе са инсталацијом. Слично је ономе где Windows инсталира програме C:\Windows\Progam Files\“Име програма“

/proc директоријум је посебан зато што је виртуелни датотечни систем. Не садржи „праве“ фајлове већ runtime системске информације (системска меморија, прикачени (маунтовани) уређаји, хардверска конфигурација…). Због тога може бити сматран као информативни центар за потребе кернела. На пример,  /proc/{pid} садржи информације о процесу са одређеним-наведеним pid-ом (енгл. process identification number).

/root директоријум је /home директоријум за администратора система. Немојте мешати „/“ и „/root“ иако се зову исто. / је корен свих директоријума, на енглеском root, dok je /root директоријум кореног корисника.

/sbin директоријум садржи основне бинарне фајлове који су важни за покретање (бутовање), обнављање фајлова (енгл. restore) и опоравак система као додатак на бинардне облике у /bin.

/selinux – Security-Enhanced Linux (SELinux) је сигурносно унапређење Линукса. Омогућава контролу пермисија свих корисника, односно контролу над процесима ради ефикасније заштите. Обавезно прочитати https://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-selinux.html

/srv је директоријум који садржи податке који ће бити сервирани за протоколе као што су ftp, rsync, www, cvs.

/sys садржи информације о уређајима, драјверима и неким могућностима кернела, све заједно – „plug and play“ конфигурација.

/tmp је складишни директоријум за привремено складиштење фајлова. Када неки програм ради, користи и одређене привремене фајлове за свој рад. Такви фајлови смештају се овде. Рестартом система/сервера, ови фајлови се бришу. Управо то може бити незгодно код сервера који морају да раде без прекида. У том случају, /tmp се чисти ручно. Фајлове одавде уклањати само уколико знате шта тачно радите.

/usr директоријум садржи све бинарне фајлове, документа, библиотеке за све корисничке апликације. Највећи део корисничких бинарних фајлова инсталирају се овде.

/var директоријум окупља све фајлове који варирају у засности од рада система. Лог фајлови (белешке о раду система), мејлови, бекапи, кеш и слично. Назив је скрећено од „variable“.

Корисне команде за упознавање са хирејархијом директоријума у Линуксу

Укуцајте man hier да у конзоли директно видите све описе директоријума. Иначе man команда служи за излиставање „ман страница“ – ман (енгл. man) је скраћен он manual (прев. упутство).

Такође, да видите директоријуме у виду грана инсталирајте tree. Потребно је да будете у конзоли која је повезана са сервером преко ssh и да укуцате yum install tree:

Након инсталације можете укуцати tree /ime-direktorijuma да вам излиста садржај директоријума у гранању. Уколико укуцате tree /etc видећете нешто слично као у примеру испод:

[root@server ~]# tree /etc
/etc
|-- DIR_COLORS
|-- DIR_COLORS.256color
|-- DIR_COLORS.lightbgcolor
|-- NetworkManager
|   `-- dispatcher.d
|       |-- 00-netreport
|       |-- 05-netfs
|       |-- 10-dhclient
|       |-- 10-sendmail
|       `-- 13-named
|-- X11
|   |-- applnk
|   |-- fontpath.d
|   `-- prefdm
|-- adjtime
|-- aliases
|-- aliases.db
|-- alternatives

Tree не види скривене фајлове (оне које имају тачку испред назива) подразумевано, па укуцајте tree -a /neki-direktorijum да излиста све фајлове, скривене и оне који нису скривени.

Да излиста само директоријуме покрените:

tree -d /neki-direktorijum

Да излиста и обоји то што прикаже у подразумеваним бојама покрените:

tree -C /neki-direktorijum

Да видите све опције и упутство укуцајте:

man tree

Коме је потребан овај текст?

Свакоме ко хоће да види да шта се налази у CentOS Линуксу, ономе на почетку блиставе каријере Линукс администратора или ономе коме треба подсетник „шта беше иде у …“. Тешко да ће вам било шта од горе написаног решити неки проблем у току рада, али ће вам помоћи да створите слику о томе како све то изгледа када се распореди по серверском диску.

Почетник се можда неће сетити шта да укуца да би пронашао овај текст, али ако сте читали овај текст, баците му адресу.

Више о свему, документацију са примерима и потпунијим објашњењима прочитајте код Комјутераша (на српском) и на другим адресама (на енглеском) које сам записао испод: