Dovoljenja za Linux za sistemske skrbnike in razvijalce

Dovoljenja za Linux za sistemske skrbnike in razvijalce

Dovoljenja za Linux za sistemske skrbnike in razvijalce

Vprašanje dovoljenj v Linuxu in njegova pravilna uporaba prek ukaza "chmod" je nekaj zelo pogosto izpostavljenega in razpravljanega v skupnostih SL. Napredni uporabniki, tehniki in skrbniki strežnikov in sistemov. V našem blogu imamo na primer 2 zelo dobri publikaciji o tem, in sicer: Dovoljenja in pravice v Linuxu (01/12) y Osnovna dovoljenja v GNU / Linux s chmod (08/16).

Toda velikokrat SW razvijalci kdo so tisti, ki ustvarjajo aplikacije in sisteme, večina sistemov in spletnih strani, Ko jih razvijajo, običajno ne upoštevajo, katera so pravilna dovoljenja, ki jih je treba uporabiti na njih, pri čemer je naloga skoraj vedno na strani skrbnikov strežnikov in sistema. V tej publikaciji bomo poskušali zanje malo opozoriti.

Dovoljenja za Linux za DevOps / BDA: Uvod

uvod

Ukaz "chmod»Je zelo uporaben in pomemben za napredno uporabo operacijskih sistemov, ki temeljijo na Linuxu. Vendar kot tak "chmod" ni samostojni paket, ampak je integriran v paket "coreutils«. Paket "coreutils" je paket, ki operacijskemu sistemu nudi številna osnovna orodja za upravljanje datotek, tolmače ukazov in obdelavo besedil. In na splošno je v večini distribucij Linuxa že privzeto nameščen.

Ta paket poleg ukaza "chmod" vsebuje še naslednje ukaze: arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp csplit cut date dd df dir dircolors dirname du echo env razširitev expr faktor false flock fmt fold groups head hostid id install join link ln logname ls md5sum mkdir mkfifo mknod mktemp mh nicem mh numm mh nicem od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon sha * sum seq shred spanje razvrsti split stat stty sum sync tac tail tee test timeout touch tr true truncate tsort tty uname expand uniq unlink users vdir wc whoami da.

Če povzamemo, ukaz «chmod» omogoča zelo pomembno nalogo upravljanja dovoljenj za datoteke in mape vsem uporabnikom, ki jih upravlja operacijski sistem. To je zato, ker je Linux kot operacijski sistem več uporabniški, zato mora delovnemu okolju zagotoviti sistem dovoljenj za nadzor nabora pooblaščenih operacij nad datotekami in imeniki, ki vključuje vse sistemske vire in naprave.

vsebina

Dovoljenja za Linux za SW / BD: Vsebina 1

Uporaba za razvijalce SW

Skrbnik strežnika in sistemov (Sysadmin) mora pri odločanju, katera dovoljenja uporabniku podeliti nivo X ali profilu v datoteki ali mapi X, natančno vedeti, katere vrste operacij ali procesov mora z njimi izvesti. V primeru spletnega strežnika lahko uporabnike razvrstimo v dve vrsti:

  1. Skrbniški uporabniki: Kdo ima na strežniku uporabniški račun za prijavo, ima posebne privilegije in običajno izvede določene spremembe (kopiranje / brisanje / spreminjanje) v sistemu ali spletnem mestu, na primer nameščen prek SSH ali SFTP.
  2. Uporabniki, ki niso skrbniki: Da na strežniku nimajo uporabniškega računa, saj so le obiskovalci spletnega mesta in spletnega sistema. Zato nimajo dovoljenja za neposreden dostop do datotek in map, temveč z njimi komunicirajo prek spletnega vmesnika spletnega mesta ali nameščenega spletnega sistema.

Kadar pa Sysadmin ne prejme dovolj ali zadosti informacije, dokumentacija ali podpora programerjev SW o zmožnostih, funkcionalnosti ali strukturi datotek spletnih mest in sistemov, ki jih je treba namestiti konča z izvajanjem zanesljivega maksimuma, ki je v tem primeru običajno:

chmod 777 -R /var/www/sistema-web

In velikokrat se konča z:

chown root:root -R /var/www/sistema-web

Dovoljenja za Linux za SW / BD: Vsebina 2

Opozorilo

To je ponavadi slaba praksa, vendar se ponavadi izogne ​​težavam s permisivnostjo in slabo izvedbo nameščenih spletnih mest in sistemov. Slaba praksa, saj ko se na ta način izvrši ukaz chmod 777 v mapi in datotekah spletnega mesta ali spletnega sistema, ni nobene varnosti.

Omogočanje, da kateri koli uporabnik spletnega mesta ali spletnega sistema na spletu brez večjih ovir spremeni ali izbriše katero koli datoteko v datotečni strukturi spletnega mesta ali spletnega sistema znotraj spletnega strežnika ali zunaj njega. Ker ne smemo pozabiti, da je spletni strežnik tisti, ki deluje v imenu gostujočih uporabnikov in da lahko spremeni iste datoteke, ki se izvajajo.

V primeru, da je uporabnik napadalec in ima na spletnem mestu ali spletnem sistemu nekaj ranljivosti, bi ga lahko zlahka izkoristil, da bi ga pokvaril, onemogočil, ali še huje, vstavite zlonamerno kodo za izvajanje lažnih napadov ali ukradite podatke s strežnika, ne da bi kdo zlahka vedel.

Dovoljenja za Linux za SW / BD: Vsebina 3

Priporočila

Da bi se izognili tovrstnim ukrepom Sysadmin ali razvijalec SW mora zagotoviti, da mape in datoteke različnih sistemov ali spletnih mest vsebujejo pravilna in potrebna dovoljenja in uporabnike da bi se izognili prihodnjim težavam z varnostjo in zasebnostjo.

Na ravni dovoljenja lahko izvedete naslednje 3 ukaze za obnovitev dovoljenj in uporabnikov nameščenega sistema ali spletnega mesta v normalno stanje.To pomeni, da vrednost 755 nastavite na vse imenike in 644 na datoteke.

Vedno se spomnim, da jih izvedem v mapi System ali Website, ker če se izvajajo v višji mapi (imeniku), kot je na primer koren strežnika, bodo ukazi ukaza rekurzivno spremenili vsa dovoljenja strežnika, tako da bo najverjetneje nedelujoč.

Dovoljenja za Linux za SW / BD: Vsebina 4

Dovoljenja, uporabljena za mape (imeniki)

Primeri

Dovoljenja za imenike in datoteke

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

y

chmod 777 -R .

o

chmod 777 -R /var/www/sistema-web

V primeru, da je zunaj mape (imenika) sistema ali spletnega mesta.

Uporabniki sistema ali spletnega mesta

chown www-data:www-data -R .

o

chown www-data:www-data -R /var/www/sistema-web

V primeru, da je zunaj mape (imenika) sistema ali spletnega mesta. Uporabniški www-podatki so uporabljeni le kot primer, saj so najbolj uporabni ali najprimernejši, kar zadeva uporabo Apache2.

Dovoljenja za Linux za SW / BD: Vsebina 5

Dovoljenja, uporabljena za datoteke (datoteke)

Ko so spremembe dovoljenj opravljene, lahko nadaljujemo s spreminjanjem dovoljenj imenikov in datotek, za katere želimo, da imajo drugačna dovoljenja ročno. In če je treba spremeniti tudi lastnika uporabnikov potrebnih. Zato se morata na tej točki tako Sysadmin kot razvijalci SW dogovoriti, katera dovoljenja morajo biti za vsako mapo in datoteko v strukturi sistema ali spletnega mesta.

Dovoljenja za Linux za SW / BD: Zaključek

Zaključek

Upravljanje dovoljenj za datoteke in mape operacijskega sistema Linux ali UNIX je ena od velikih prednosti in koristi istega, saj omogočajo boljši, natančen in varen nadzor nad različnimi stopnjami dostopa, izdaje in izvajanja datotek in map.

In še veliko več, ko gre za raven spletnih strežnikov, torej tam, kjer gostujejo sistemi ali notranja in zunanja spletna mesta organizacije, Ker je prednostna naloga vedeti, katera dovoljenja je treba dodeliti posameznemu imeniku ali datoteki, da dosežemo najboljše ravnovesje med zasebnostjo, varnostjo in funkcionalnostjo.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   polg28 je dejal

    Dobro jutro, kako si?
    Delam v Linuxu, imam aplikacijo, ki lahko iz njega uvaža datoteke, uporabnik naloži .zip, ki vsebuje mapo z datotekami xml, potem ko razpakira datoteke, ki so vstavljene v bazo podatkov. V oknih nimam težav, pri prenosu aplikacije na linux bi pogrešal nekaj dovoljenj, načeloma bi preizkusil vse, kar sem dobro povedal v tem članku, in tega ne bi smelo storiti haha ​​(ampak enkrat bom spremenil Lahko preverim vse funkcionalnosti).
    Dejstvo je, da so datoteke dekomprimirane, vendar vidim, da se prenašajo samo z dovoljenji za branje in pisanje za lastnika, branjem za skupino lastnikov in brez dovoljenj za druge. Ko so datoteke v lasti uporabnika, ki uporablja aplikacijo. Razumem, da ker nima dovoljenj za izvajanje, ne more slediti običajnemu toku postopka in vstaviti xml v bazo podatkov. Na to pride moje vprašanje, kako lahko dam dovoljenja datotekam, ki jih še nimam v sistemu? V mapi, ki jo prenesete (tmp), ima vsa dovoljenja, le-te se uporabijo v poševnem tisku, vendar imajo vsakič, ko se datoteke prenesejo v to mapo, le navedena dovoljenja. Ali lahko tudi datoteke, ki se pojavijo v tej mapi, ostanejo z dovoljenji za izvajanje?
    Upam, da sem bil jasen, lepa hvala vnaprej in odličen blog

  2.   Linux po namestitvi je dejal

    Predvidevam, da ima mapa / tmp ali ... / tmp 755 dovoljenj, a kljub temu jih uporabnik, ki je lastnik aplikacije, deponira, jim pusti druga dovoljenja. Nisem razvijalec, vendar predvidevam, da bi mu v jeziku aplikacije ali drugem lahko nakazal rutino, ki izvaja ukaz ukaza (bash) potrebnih dovoljenj (chmod) in lastnika datotek (chown). V nasprotnem primeru lahko skript zaženete vsako minuto, ko se zažene.