{"id":55251,"date":"2020-01-16T00:00:00","date_gmt":"2020-01-15T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/fajlovye-razresheniya-v-linux"},"modified":"2020-02-18T14:03:21","modified_gmt":"2020-02-18T11:03:21","slug":"fajlovye-razresheniya-v-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/fajlovye-razresheniya-v-linux","title":{"rendered":"Uprawnienia plik\u00f3w w Linuxie","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Witajcie wszyscy. Aktywnie wkr\u0119tujemy si\u0119 w prac\u0119 i ju\u017c w styczniu przygotowujemy wiele pot\u0119\u017cnych uruchomie\u0144. W\u015br\u00f3d innych, og\u0142oszono nab\u00f3r na now\u0105 edycj\u0119 uwielbianego przez wszystkich kursu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rbVT\/\">Administrator Linux<\/a><\/noindex>. W przeddzie\u0144 uruchomienia tradycyjnie dzielimy si\u0119 t\u0142umaczeniem przydatnych materia\u0142\u00f3w.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uprawnienia plik\u00f3w w Linuxie\" src=\"\/wp-content\/uploads\/2020\/01\/451acace5e0a9088355acb800d789db9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p><i>Uprawnienia plik\u00f3w oferuj\u0105 bezpieczn\u0105 alternatyw\u0119 dla plik\u00f3w wykonywalnych SUID, ale mog\u0105 wydawa\u0107 si\u0119 nieco zagmatwane na pierwszy rzut oka.<\/i><\/p><\/blockquote>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nWszyscy wiemy, \u017ce pliki binarne <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Setuid#Security\">SUID<\/a><\/noindex> s\u0105 <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Setuid#Security\">s\u0105 z\u0142ym rozwi\u0105zaniem z punktu widzenia bezpiecze\u0144stwa<\/a><\/noindex>. Na szcz\u0119\u015bcie, je\u015bli twoja aplikacja wymaga pewnych ograniczonych uprawnie\u0144, istnieje bardziej efektywny spos\u00f3b, zwany <noindex><a rel=\"nofollow\" href=\"http:\/\/www.linuxjournal.com\/article\/5737\">uprawnieniami plik\u00f3w<\/a><\/noindex>.<\/p>\n<p>Zaoszcz\u0119dz\u0119 ci czasu, je\u015bli chcesz unikn\u0105\u0107 szczeg\u00f3\u0142owego czytania powy\u017cszego artyku\u0142u: w zasadzie, uprawnienia plik\u00f3w pozwalaj\u0105 procesom, kt\u00f3re s\u0105 uruchamiane w imieniu u\u017cytkownika root i dlatego maj\u0105 prawo do robienia czegokolwiek, zachowa\u0107 pewne mo\u017cliwo\u015bci ograniczone <noindex><a rel=\"nofollow\" href=\"http:\/\/www.kernel.org\/doc\/man-pages\/online\/pages\/man7\/capabilities.7.html\">t\u0105 list\u0105<\/a><\/noindex>, gdy zrzekaj\u0105 si\u0119 uprawnie\u0144 i uruchamiaj\u0105 si\u0119 jako nieuprzywilejowany u\u017cytkownik. Oznacza to, \u017ce je\u015bli napastnik zdo\u0142a skompromitowa\u0107 proces za pomoc\u0105 przepe\u0142nienia bufora lub innego eksploitu, nie b\u0119dzie m\u00f3g\u0142 wykorzysta\u0107 nic poza okre\u015blonymi minimalnymi uprawnieniami, kt\u00f3re s\u0105 naprawd\u0119 potrzebne procesowi.<\/p>\n<p>Uprawnienia doskonale nadaj\u0105 si\u0119 do us\u0142ug, kt\u00f3re zazwyczaj zawsze s\u0105 uruchamiane jako u\u017cytkownik root, ale co z narz\u0119dziami wiersza polece\u0144? Na szcz\u0119\u015bcie, to r\u00f3wnie\u017c jest obs\u0142ugiwane, pod warunkiem, \u017ce masz zainstalowane odpowiednie narz\u0119dzia. Je\u015bli u\u017cywasz Ubuntu, na przyk\u0142ad potrzebujesz pakietu <code>libcap2-bin<\/code>. Musisz tak\u017ce uruchomi\u0107 nie archaiczne j\u0105dro (z wersj\u0105<b> 2.6.24<\/b>).<\/p>\n<p>Te funkcje pozwalaj\u0105 wi\u0105za\u0107 uprawnienia z plikami wykonywalnymi, podobnie jak ustawienie bitu SUID, ale tylko dla okre\u015blonego zestawu uprawnie\u0144. Narz\u0119dzie <code>setcap<\/code> s\u0142u\u017cy do dodawania i usuwania uprawnie\u0144 z pliku.<\/p>\n<p>Pierwszym krokiem jest wyb\u00f3r potrzebnych uprawnie\u0144. W tym artykule zak\u0142adam, \u017ce istnieje narz\u0119dzie diagnostyczne sieci o nazwie <code>tracewalk<\/code>, kt\u00f3re powinno umie\u0107 korzysta\u0107 z <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/raw.7.html\">surowych gniazd<\/a><\/noindex>. Zwykle wymaga to, aby aplikacja by\u0142a uruchamiana przez u\u017cytkownika root, ale przy przegl\u0105daniu <noindex><a rel=\"nofollow\" href=\"http:\/\/www.kernel.org\/doc\/man-pages\/online\/pages\/man7\/capabilities.7.html\">listy <\/a><\/noindex>okazuje si\u0119, \u017ce potrzebne jest tylko uprawnienie <code>CAP_NET_RAW<\/code>.<\/p>\n<p>Zak\u0142adaj\u0105c, \u017ce jeste\u015b w katalogu, w kt\u00f3rym znajduje si\u0119 plik binarny <code>tracewalk<\/code>, mo\u017cesz doda\u0107 to uprawnienie w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<pre><code class=\"bash\">sudo setcap cap_net_raw=eip tracewalk<\/code><\/pre>\n<p>\nNa razie zignoruj sufiks <code>=eip<\/code> dla uprawnienia, powiem o tym za chwil\u0119. Zauwa\u017c, \u017ce nazwa uprawnienia jest zapisywana ma\u0142ymi literami. Teraz mo\u017cesz sprawdzi\u0107, czy poprawnie skonfigurowa\u0142e\u015b uprawnienia, u\u017cywaj\u0105c:<\/p>\n<pre><code class=\"bash\">setcap -v cap_new_raw=eip tracewalk<\/code><\/pre>\n<p>\nLub mo\u017cesz wypisa\u0107 wszystkie uprawnienia ustawione dla danego pliku wykonywalnego:<\/p>\n<pre><code class=\"bash\">getcap tracewalk\n<\/code><\/pre>\n<p>\nDla informacji, mo\u017cesz r\u00f3wnie\u017c usun\u0105\u0107 wszystkie uprawnienia z pliku wykonywalnego, u\u017cywaj\u0105c:<\/p>\n<pre><code class=\"bash\">setcap -r tracewalk<\/code><\/pre>\n<p>\nNa tym etapie powiniene\u015b by\u0107 w stanie uruchomi\u0107 plik wykonywalny jako nieuprzywilejowany u\u017cytkownik, i powinien on mie\u0107 mo\u017cliwo\u015b\u0107 pracy z surowymi gniazdami, ale nie mie\u0107 innych przywilej\u00f3w, jak te, kt\u00f3re posiada u\u017cytkownik root.<\/p>\n<p>Wi\u0119c, co oznacza ten dziwny sufiks <code>=eip<\/code>? \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u0438\u043a\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0440\u043e\u0434\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043c\u0435\u0435\u0442 \u0442\u0440\u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u2014 <i>efektywne, dziedziczone i dozwolone (effective, inheritable i permitted)<\/i>:<\/p>\n<ul>\n<li><b>Efektywne (Effective)<\/b> uprawnienia to te, kt\u00f3re okre\u015blaj\u0105, co proces mo\u017ce faktycznie robi\u0107. Na przyk\u0142ad, nie mo\u017ce obs\u0142ugiwa\u0107 surowych gniazd, je\u015bli <code>CAP_NET_RAW<\/code> nie znajduje si\u0119 w zestawie efektywnym.<\/li>\n<li><b>Dozwolone (Permitted)<\/b> uprawnienia to te, kt\u00f3re proces mo\u017ce mie\u0107, je\u015bli za\u017c\u0105da ich odpowiednim wywo\u0142aniem. Nie pozwalaj\u0105 one procesowi faktycznie nic robi\u0107, chyba \u017ce zosta\u0142 specjalnie napisany, aby za\u017c\u0105da\u0107 okre\u015blonego uprawnienia. To pozwala pisa\u0107 procesy, kt\u00f3re dodaj\u0105 szczeg\u00f3lnie wa\u017cne uprawnienia do zestawu efektywnego tylko na czas, gdy s\u0105 one rzeczywi\u015bcie wymagane.<\/li>\n<li><b>Dziedziczone (Inheritable)<\/b> uprawnienia to te, kt\u00f3re mog\u0105 by\u0107 dziedziczone w dost\u0119pnym zestawie procesu potomnego. Podczas operacji <code>fork()<\/code> lub <code>clone()<\/code> proces potomny zawsze otrzymuje kopi\u0119 uprawnie\u0144 procesu macierzystego, poniewa\u017c w tym momencie nadal wykonuje ten sam plik wykonywalny. Zestaw dziedziczony jest u\u017cywany, gdy <code>exec()<\/code> (lub podobne) jest wywo\u0142ywane, aby zast\u0105pi\u0107 plik wykonywalny innym. W tym momencie dost\u0119pny zestaw procesu jest maskowany przez zestaw dziedziczony, aby uzyska\u0107 dost\u0119pny zestaw, kt\u00f3ry b\u0119dzie u\u017cywany dla nowego procesu.<\/li>\n<\/ul>\n<p>\nW ten spos\u00f3b narz\u0119dzie <code>setcap<\/code> pozwala nam niezale\u017cnie dodawa\u0107 uprawnienia tych trzech zbior\u00f3w dla danego pliku wykonywalnego. Nale\u017cy zauwa\u017cy\u0107, \u017ce warto\u015b\u0107 grupy jest interpretowana nieco inaczej dla uprawnie\u0144 do plik\u00f3w:<\/p>\n<ul>\n<li><b>Dost\u0119pne <\/b>uprawnienia plik\u00f3w to te, kt\u00f3re s\u0105 zawsze dost\u0119pne dla pliku wykonywalnego, nawet je\u015bli proces nadrz\u0119dny, kt\u00f3ry go wywo\u0142a\u0142, ich nie mia\u0142. Wcze\u015bniej nazywa\u0142y si\u0119 \u00abprzymusowymi\u00bb uprawnieniami.<\/li>\n<li><b>Dziedziczone <\/b>uprawnienia plik\u00f3w okre\u015blaj\u0105 dodatkow\u0105 mask\u0119, kt\u00f3ra mo\u017ce by\u0107 r\u00f3wnie\u017c u\u017cywana do usuwania uprawnie\u0144 z zestawu procesu wywo\u0142uj\u0105cego. Stosuje si\u0119 je dodatkowo do dziedziczonego zestawu procesu wywo\u0142uj\u0105cego, wi\u0119c uprawnienie jest dziedziczone tylko, je\u015bli istnieje w obu zbiorach.<\/li>\n<li><b>Efektywne <\/b>uprawnienia plik\u00f3w s\u0105 w rzeczywisto\u015bci tylko jednym bitem, a nie zbiorem, i je\u015bli jest ustawiony, oznacza to, \u017ce ca\u0142y dost\u0119pny zestaw r\u00f3wnie\u017c jest kopiowany do efektywnego zestawu nowego procesu. Mo\u017ce to by\u0107 u\u017cyte do dodania uprawnie\u0144 do proces\u00f3w, kt\u00f3re nie by\u0142y specjalnie zaprogramowane do ich za\u017c\u0105dania. Poniewa\u017c to jeden bit, je\u015bli ustawiasz go dla jakiegokolwiek uprawnienia, musi by\u0107 ustawiony dla wszystkich uprawnie\u0144. Mo\u017cesz my\u015ble\u0107 o nim jak o bicie dziedzicznym, poniewa\u017c jest u\u017cywany do zezwalania na korzystanie z uprawnie\u0144 przez aplikacje, kt\u00f3re ich nie obs\u0142uguj\u0105.<\/li>\n<\/ul>\n<p>\nPodczas okre\u015blania uprawnie\u0144 za pomoc\u0105 <code>setcap<\/code> trzech liter <code>e<\/code>, <code>i<\/code> i <code>p<\/code> odnosz\u0105 si\u0119 do <i>efektywnego, dziedziczonego i dost\u0119pnego<\/i> zestaw\u00f3w odpowiednio. Oto wcze\u015bniejsza specyfikacja:<\/p>\n<pre><code class=\"bash\">sudo setcap cap_net_raw=eip tracewalk<\/code><\/pre>\n<p>\n\u2026 wskazuje, \u017ce uprawnienie <code>CAP_NET_RAW<\/code> musi by\u0107 dodane do dost\u0119pnych i dziedziczonych zbior\u00f3w, a tak\u017ce bit efektywny musi by\u0107 ustawiony. To zast\u0105pi wszelkie wcze\u015bniej ustawione uprawnienia w pliku. Aby ustawi\u0107 kilka uprawnie\u0144 jednocze\u015bnie, u\u017cyj listy rozdzielonej przecinkami:<\/p>\n<pre><code class=\"bash\">sudo setcap cap_net_admin,cap_net_raw=eip tracewalk<\/code><\/pre>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.kernel.org\/doc\/man-pages\/online\/pages\/man7\/capabilities.7.html\">Podr\u0119cznik dotycz\u0105cy uprawnie\u0144<\/a><\/noindex> omawia to bardziej szczeg\u00f3\u0142owo, ale mam nadziej\u0119, \u017ce ten post nieco zdemistyfikowa\u0142 to, co si\u0119 dzieje. Pozosta\u0142o tylko wspomnie\u0107 kilka ostrze\u017ce\u0144 i sztuczek.<\/p>\n<p>Po pierwsze, mo\u017cliwo\u015bci plik\u00f3w nie dzia\u0142aj\u0105 z dowi\u0105zaniami symbolicznymi \u2014 musisz je zastosowa\u0107 do samego pliku binarnego (czyli celu dowi\u0105zania symbolicznego).<\/p>\n<p>Po drugie, nie dzia\u0142aj\u0105 z interpretowanymi skryptami. Na przyk\u0142ad, je\u015bli masz skrypt Python, kt\u00f3remu chcesz przypisa\u0107 uprawnienia, musisz przypisa\u0107 je samemu interpreterowi Pythona. Oczywi\u015bcie, stanowi to potencjalny problem bezpiecze\u0144stwa, poniewa\u017c wtedy wszystkie skrypty uruchamiane z tym interpretatorem b\u0119d\u0105 mia\u0142y przypisane te same uprawnienia, chocia\u017c i tak jest to znacznie lepsze ni\u017c zastosowanie SUID. Najbardziej powszechnym obej\u015bciem jest napisanie oddzielnego pliku wykonywalnego w C lub jego odpowiedniku, kt\u00f3ry mo\u017ce wykona\u0107 wymagane operacje i wywo\u0142a\u0107 go ze skryptu. Przypomina to podej\u015bcie zastosowane w Wireshark, kt\u00f3re u\u017cywa pliku binarnego. <code>\/usr\/bin\/dumpcap<\/code> do wykonywania operacji z przywilejami:<\/p>\n<pre><code class=\"bash\">$ getcap \/usr\/bin\/dumpcap \n\/usr\/bin\/dumpcap = cap_net_admin,cap_net_raw+eip<\/code><\/pre>\n<p>\nPo trzecie, uprawnienia plik\u00f3w s\u0105 wy\u0142\u0105czane, je\u015bli u\u017cywasz zmiennej \u015brodowiskowej <code>LD_LIBRARY_PATH<\/code> ze zrozumia\u0142ych wzgl\u0119d\u00f3w bezpiecze\u0144stwa<i>(1)<\/i>. To samo dotyczy <code>LD_PRELOAD<\/code>, o ile mi wiadomo.<\/p>\n<p><i>1. Poniewa\u017c napastnik oczywi\u015bcie mo\u017ce podmieni\u0107 jedn\u0105 ze standardowych bibliotek i u\u017cy\u0107 <code>LD_LIBRARY_PATH<\/code>, aby zmusi\u0107 swoj\u0105 bibliotek\u0119 do preferencyjnego wywo\u0142ywania przed bibliotek\u0105 systemow\u0105, a tym samym mie\u0107 w\u0142asny dowolny kod wykonywany z tymi samymi przywilejami, co wywo\u0142uj\u0105ca aplikacja. <br \/>\n<\/i><\/p>\n<p><i><b>To wszystko. Szczeg\u00f3\u0142owe informacje na temat programu kursu b\u0119dzie mo\u017cna uzyska\u0107 na <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rbVT\/\">webinarze, kt\u00f3ry odb\u0119dzie si\u0119 24 stycznia.<\/a><\/noindex><\/b><\/i><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/483934\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0443\u0436\u0435 \u0432 \u044f\u043d\u0432\u0430\u0440\u0435 \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0449\u043d\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432. \u0421\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0438\u0445, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043f\u043e\u043b\u044e\u0431\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0432\u0441\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 Linux\u00bb. \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430. \u0424\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c SUID, \u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434. \u0412\u0441\u0435 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55252,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-55251","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0443\u0436\u0435 \u0432 \u044f\u043d\u0432\u0430\u0440\u0435 \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0449\u043d\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/fajlovye-razresheniya-v-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0424\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0443\u0436\u0435 \u0432 \u044f\u043d\u0432\u0430\u0440\u0435 \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0449\u043d\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/fajlovye-razresheniya-v-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-15T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Uprawnienia plik\u00f3w w Linuxie | ProHoster","description":"Cze\u015b\u0107 wszystkim. Aktywnie wkr\u00f3tce przyst\u0119pujemy do pracy i ju\u017c w styczniu przygotowujemy wiele pot\u0119\u017cnych uruchomie\u0144.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/fajlovye-razresheniya-v-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0424\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 Linux | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0443\u0436\u0435 \u0432 \u044f\u043d\u0432\u0430\u0440\u0435 \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0449\u043d\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/fajlovye-razresheniya-v-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-15T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55251","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:47:37","updated":"2022-09-30 13:42:26","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/55251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=55251"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/55251\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/55252"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=55251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=55251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=55251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}