Cunostinte avansate de drepturi (optional)

  1. Bineinteles ca, in unele situatii, avem nevoie de drepturi specifice pentru mai multi utilizatori din sistem. De exemplu, sa presupunem ca avem un folder cu codul sursa al unei aplicatii. In acest caz, administratorii au nevoie de drepturi de citire si de executie, dar nu au nevoie de drepturi de scriere. Programatorii au nevoie de drepturi de scriere si de citire, dar nu au nevoie de drepturi de executie. Juniorii, care trebuie instruiti, au nevoie de drepturi de citire, dar nu este recomandat sa le dai drepturi de executie sau de scriere. Este deja evident ca treaba e complicata si un sistem de rwx pentru owner, group si others nu este suficient. Pentru cazuri de acest gen recomand FACL, respectiv File Access Control List, care permite configurarea individuala a drepturilor de rwx pentru fiecare utilizator si grup din sistem. Comanda care seteaza acest ACL este setfacl si comanda care afiseaza toate drepturile adaugate unui fisier este getfacl. Se poate observa usor ca unui fisier i-a fost atasat un ACL, deoarece are un + (plus) langa coloana drepturilor. Acest pachet trebuie instalat, deoarece nu face parte din distributie.

  2. Drepturile rwxrwxrwx (read, write, execute pentru user, group, others) pot fi reprezentate si in forma binara, respectiv 111 111 111 sau 777 in acest caz. Pentru rw-r--r--, reprezentarea binara este 110 100 100 sau 644. De exemplu, daca dorim sa oferim pentru un fisier drepturi de executie proprietarului si nici un drept altor persoane, putem sa folosim comanda chmod 700 fisier, deoarece 700 reprezinta 111 000 000, adica rwx------.

Comenzi importante

  • sudo – super user do; permite executarea oricarei comenzi cu drepturi de root

  • cd – change directory

  • ls – list directory contents

  • ll sau ls -al – a inseamna all si afiseaza inclusive folderele hidden

  • mkdir – make directory

  • touch – make a file

  • mv – move

  • cp – copy

  • man – deschide o pagina de manual pentru orice comanda

  • stat – informatii despre un fisier (cand a fost ultima oara modificat, cand a fost creat)

  • chown – modificarea proprietarului unui fisier/dosar

  • chmod – modificarea drepturilor unui fisier/dosar

  • cat – printeaza in consola continutul unui fisier

  • tail – afiseaza ultimele randuri dintr-un fisier (util pentru log-uri)

  • head – afiseaza primele randuri dintr-un fisier

  • less – deschide un fisier pentru a vizualiza continutul lui

  • useradd – adauga un utilizator in sistem

  • userdel – sterge un utilizator din sistem

  • ps -ef – afiseaza toate procesele din sistem

  • grep – returneaza randurile dintr-un fisier care contine un string/regex

  • find – cauta fisiere si foldere in functie de nume

  • locate – find pe alte distributii

  • apt-get install – instaleaza o aplicatie in sistem (pe debian sau Ubuntu)

  • yum install – acelasi lucru pe redhat

  • kill -9 – omoara un process

  • top – afiseaza cat procesor si cat ram mananca fiecare serviciu din sistem si cat procesor si ram mai are sistemul disponibil

  • htop – un top mai smecher, dar trebuie instalat

  • uname -a – afiseaza numele distributiei sistemului, versiunea kernelului si alte informatii; este util pentru a afla daca sistemul de operare este Debian, Ubuntu, AIX, Solaris, Redhat, CentOS, Slackware etc

  • w – arata de cat timp este serverul deschis si utilizatorii autentificati in sistem

  • /etc/init.d/numele_serviciului start,stop,restart,reload – permite aceste operatiuni pentru majoritatea serviciilor din sistem (daca aveti pe sistem o aplicatie care nu are configurat acest script, cel mai probabil acea aplicatie trebuie stearsa si uitata)

  • mount – permite montarea (instalarea) unui drive (HDD, SSD, SAN etc)

  • df – afiseaza spatiul folosit pentru fiecare partitie din sistem

  • du – afiseaza spatiul pe care il ocupa un folder sau un fisier

  • nano – editor text pentru consola; echivalentul lui notepad pentru consola; presupune o lista simpla de comenzi care e afisata tot timpul pe ecran; recomand folosirea lui la inceput

  • vim – editor text foarte puternic, dar cu learning curve anevoios; echivalentul lui notepad++; presupune o lista lunga de comenzi care trebuie invatata pe derost si preferabil, printata si pastrata undeva langa laptop; contine foarte multe pluginuri si poate fi transformat intr-un mediu de programare foarte bun pentru scripturi Bash/PHP/Python/Perl; pentru barbati

  • wget – downlodeaza print HTTP/S o pagina web sau un fisier

  • curl – ca wget, dar mai smecher; stie PUT, POST, DELETE etc

  • netstat - conform man, afiseaza network connections, routing tables, interface statistics, masquerade connections, multicast memberships; foarte util in analiza legata de network

  • netstat -tlnp – TCP, LISTENING, NUMERIC, PID, adica afiseaza aplicatiile care asculta pe TCP

  • netstat -tanp – acelasi lucru, dar ACTIVE in loc de LISTENING; pentru conexiuni active

Pipe intre doua comenzi

In Linux este posibil sa filtram output-ul unei comenzi printr-o alta comanda. Un exemplu bun este cel cu grep, care trebuie cunoscut pentru folosirea cu usurinta a unui sistem Linux. De exemplu, daca dorim sa vedem PIDul serverului mysql, putem sa rulam comanda ps -ef si vom obtine un rezultat de acest gen:

distPoint ~ # ps -ef | grep mysql
mysql 1024 1 0 Apr24 ? 00:02:54 /usr/sbin/mysqld
root 18593 17699 0 18:59 pts/0 00:00:00 grep --color=auto mysql

In acest fel putem sa ne dam seama ca PIDul daemonului de mysql este 1024 si ca procesul a fost initiat de utilizatorul msyql si bineinteles vedem si ca utilizatorul root a folosit comanda grep mysql.

Servicii, procese, aplicatii, daemon-uri

Pana acum am discutat cum putem sa ne invartim pe un sistem Linux, dar nu am aratat cum putem sa facem ceva folositor cu el. In mare marte, la inceput este necesar sa cunoastem numele serviciilor si asta doresc sa acopar in acest capitol. Mai jos se gaseste o lista cu cateva servicii si procese care sunt foarte des regasite pe un sistem linux:

  • init – proces cu IDul 1, care este tatal tuturor celorlalte procese; practic, acest process deschide alte procese ca si copii ai sai

  • cron – echivalentul lui Task Scheduler de pe Windows; permite rularea unui anumit script la o anumita ora in fiecare zi, sau intr-o anumita zi din luna, sau o data pe an; este folosit des in operatiuni cum ar fi stergerea log-urilor, curatarea datelor invechite dintr-o baza de date, arhivarea anumitor documente care nu mai sunt accesate active; se opereaza cu ajutorul comenzii crontab

  • bash – versiunea default de Unix Shell, respective de interfata de tip consola (fara GUI)

  • sshd – SSH deamon este responsabil pentru oferirea serviciului SSH (Secure Shell), respectiv o conexiune criptata la bash

  • named sau bind – server de DNS

  • apache2 sau httpd – server web folosit pentru site-uri scrise in PHP, python, ruby, perl

  • nginx – server web, la fel ca apache2, dar cu un comportament usor diferit in situatii de load;

  • postfix sau master – server smtp

  • dovecot – server imap si pop3

  • mdadm – manage MD devices aka Linux Software RAID; ofera RAIDuri la nivel Linux (alternativa a RAIDurilor BIOS/hardware); se foloseste de obicei impreuna cu tehnologia LUKS (care este o specificatie de criptare a drive-urilor) si mount (care permite atasarea drive-ului)

  • proftpd, glfptd – servere de ftp

  • netfilter – un framework/modul din kernelul de linux care permite operatiuni de retea, care permite filtrare de pachete, NAT, port forwarding, firewall etc; nu apare ca process, deoarece face parte din kernel; nu poate fi apelat prin comenzi din bash si este folosit prin intermediul altor interfete sau de librariile aplicatiilor/serviciilor

  • iptables – o interfata care permite folosirea frameworkului netfilter; practic, de aici se fac toate setarile de firewall, de NAT si de port forwarding din linux; nu este un proces de linux, pentru ca este doar o interfata pentru netfilter; a fost inlocuit de nftables in ultimul kernel de linux, dar majoritatea distributiilor (de exemplu Ubuntu) inca il folosesc pentru ca este considerat stabil

  • nftables – proiect care doreste sa inlocuiasca iptables si arptables; are la baza tot netfilter, dar livreaza o versiune mai usor de folosit si mai rapida; este considera inca beta si instabil

  • ufw – Uncomplicated Firewall; este o interfata pentru iptables care permite configurarea unui firewall fara mult stres; este instalat by default pe cateva distributii (inclusiv Ubuntu) si recomand folosirea lui; nu apare ca proces

  • git sau svn – sisteme de versionare; sunt folosite pe orice proiect de programare

  • mysqld – deamon pentru o baza de date mysql; recomand studierea bazelor de date relationale, in cazul in care nu exista cunostinte in aceasta arie

  • nagios sau nrpe – server sau client de nagios (tool folosit pentru monitorizare)

  • What is your reaction?
  • powered by Verysign
  • like gnulinux.ro
    Like
  • unmoved gnulinux.ro
    Unmoved
  • amused gnulinux.ro
    Amused
  • excited gnulinux.ro
    Excited
  • angry gnulinux.ro
    Angry
  • sad gnulinux.ro
    Sad
TENDINTA  |  Librem 14 disponibil in decembrie 2020
John Doe                   gnulinux.ro
John Doe
Articole publicate de la contributori ce nu detin un cont pe gnulinux.ro. Continutul este verificat sumar, iar raspunderea apartine contributorilor.
118 articole



  • Comenteaza
  • powered by Verysign

Nici un comentariu inca. Fii primul!