{"id":272,"date":"2017-03-14T17:42:10","date_gmt":"2017-03-14T16:42:10","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=272"},"modified":"2017-05-30T11:42:01","modified_gmt":"2017-05-30T09:42:01","slug":"listy-kontroli-dostepu-acl","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/03\/14\/listy-kontroli-dostepu-acl\/","title":{"rendered":"Listy kontroli dost\u0119pu (ACL)"},"content":{"rendered":"<p>Komendy om\u00f3wione w poprzednich artyku\u0142ach nie pozwalaj\u0105 niestety na nadawanie uprawnie\u0144 na danym pliku wi\u0119cej ni\u017c jednemu u\u017cytkownikowi lub grupie. Umo\u017cliwiaj\u0105 to listy kontroli dost\u0119pu (ACL &#8211; Access Control List), kt\u00f3re zapewniaj\u0105 mo\u017cliwo\u015b\u0107 ustawienia na plikach i katalogach rozszerzonej grupy uprawnie\u0144. Pozwalaj\u0105 administratorom ustawia\u0107 w taki spos\u00f3b uprawnienia , \u017ce r\u00f3\u017cni\u0105 si\u0119 one na poszczeg\u00f3lnych katalogach.\u00a0 <!--more-->Aby mo\u017cliwe by\u0142o u\u017cycie ACL system plik\u00f3w musi by\u0107 podmontowany z w\u0142\u0105czonym wsparciem dla ACL, opcja <em>acl<\/em>\u00a0 musi by\u0107 dodana do montowanego systemu plik\u00f3w w pliku <em>\/etc\/fstab<\/em>. W systemie plik\u00f3w XFS takie wsparcie jest domy\u015blnie w\u0142\u0105czone, w systemach plik\u00f3w EXT wsparcie ACL musi by\u0107 aktywowane. Listy kontroli dost\u0119pu mog\u0105 by\u0107 tak\u017ce u\u017cywane w systemach plik\u00f3w NFS i CIFS.<\/p>\n<p>ACL podzielone s\u0105 na dwie kategorie:<\/p>\n<ul>\n<li><em>access ACL<\/em> &#8211; dost\u0119powe listy kontroli dost\u0119pu, ustawiane na plikach i katalogach.<\/li>\n<li><em>default ACL<\/em> &#8211; domy\u015blne listy kontroli dost\u0119pu, ustawiane tylko na poziomie katalogu. Pliki i podkatalogi wchodz\u0105ce w sk\u0142ad katalogu z ustawionymi domy\u015blnymi ACL dziedzicz\u0105 domy\u015blne ACL katalogu nadrz\u0119dnego.<\/li>\n<\/ul>\n<p><span style=\"color: #3366ff;\">Komendy zarz\u0105dzania ACL<\/span><\/p>\n<table style=\"width: 747.617px;\">\n<tbody>\n<tr>\n<td style=\"width: 138px;\"><span style=\"color: #808080;\"><em>Komenda<\/em><\/span><\/td>\n<td style=\"width: 592.617px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138px;\"><code># getfacl<\/code><\/td>\n<td style=\"width: 592.617px;\">Wy\u015bwietla ustawienia ACL dla pliku i katalogu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138px;\"><code># setfacl<\/code><\/td>\n<td style=\"width: 592.617px;\">Ustawia, modyfikuje i kasuje ACL dla pliku lub katalogu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138px;\"><code># chacl<\/code><\/td>\n<td style=\"width: 592.617px;\">Zmienia ustawienia ACL na pliku lub katalogu. Komenda z systemu IRIX UNIX.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Je\u017celi b\u0119dziemy chcieli zrobi\u0107 backup plik\u00f3w lub katalog\u00f3w z ACL musimy zwr\u00f3ci\u0107 uwag\u0119 na fakt, \u017ce <em>tar<\/em> nie wspiera ACL. W takim wypadku nale\u017cy u\u017cy\u0107<em> star<\/em>, kt\u00f3ry pracuje z tymi samymi opcjami co tar a dodatkowo wspiera ACL. Mo\u017cna tak\u017ce wykona\u0107 backup ACL u\u017cywaj\u0105c polecenia<em> getfacl<\/em>:<\/p>\n<pre><code># getfacl -R \/directory &gt; file.acls<\/code><\/pre>\n<p>Przywracanie ACL:<br \/>\n<code> <\/code><\/p>\n<pre><code># setfacl --restore=file.acl<\/code><\/pre>\n<p>Rozwa\u017cmy nast\u0119puj\u0105cy przyk\u0142ad:<\/p>\n<pre># pwd \/root \r\n# touch file1 \r\n# ll file1 \r\n-rw-r--r-- 1 root root 0 03-14 19:28 file1 \r\n\r\n# getfacl file1 \r\nfile: file1 \r\nowner: root \r\ngroup: root \r\n<strong>user::rw-<\/strong> \r\n<strong>group::r--<\/strong> \r\n<strong>other::r--<\/strong><\/pre>\n<p>Zwr\u00f3\u0107 uwag\u0119 na wiersze zwi\u0105zane z uprawnieniami (pogrubione) i dwukropki. W przypadku u\u017cycia ACL pomi\u0119dzy tymi dwukropkami znajd\u0105 si\u0119 rozszerzone uprawnienia.<\/p>\n<p>Np. ACL: \u00a0 <code>user:1000:r--<\/code><em>\u00a0 <\/em>na pliku oznacza, \u017ce u\u017cytkownik user z UID 1000, kt\u00f3ry nie jest w\u0142a\u015bcicielem pliku ani cz\u0142onkiem grupy, kt\u00f3ra jest jego w\u0142a\u015bcicielem, ma uprawnienia tylko do odczytu tego pliku.<\/p>\n<p>Podobnie ACL:<code> group:dba:rw- <\/code>przyzna grupie dba prawo odczytu i zapisu pliku.<\/p>\n<p>&nbsp;<\/p>\n<p>Komenda <em>setfacl<\/em> zawiera wiele opcji:<\/p>\n<table style=\"width: 785px;\">\n<tbody>\n<tr style=\"height: 26px;\">\n<td style=\"width: 139.333px; height: 26px;\"><span style=\"color: #808080;\"><em>Opcja<\/em><\/span><\/td>\n<td style=\"width: 627.667px; height: 26px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 139.333px; height: 26px;\"><em><span style=\"color: #008000;\">-m<\/span><\/em><\/td>\n<td style=\"width: 627.667px; height: 26px;\">Ustawia lub modyfikuje ACL<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 139.333px; height: 26px;\"><em><span style=\"color: #008000;\">-x<\/span><\/em><\/td>\n<td style=\"width: 627.667px; height: 26px;\">Usuwa konkretne ACL<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 139.333px; height: 26px;\"><em><span style=\"color: #008000;\">-d<\/span><\/em><\/td>\n<td style=\"width: 627.667px; height: 26px;\">Ustawia domy\u015blne ACL<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 139.333px; height: 26px;\"><em><span style=\"color: #008000;\">-k<\/span><\/em><\/td>\n<td style=\"width: 627.667px; height: 26px;\">Usuwa wszystkie domy\u015blne ACL<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 139.333px; height: 26px;\"><em><span style=\"color: #008000;\">-b<\/span><\/em><\/td>\n<td style=\"width: 627.667px; height: 26px;\">Usuwa wszystkie ACL<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 139.333px; height: 26px;\"><em><span style=\"color: #008000;\">-R<\/span><\/em><\/td>\n<td style=\"width: 627.667px; height: 26px;\">Ustawia ACL rekursywnie na wszystkich plikach i podkatalogach<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table style=\"width: 787.867px;\">\n<tbody>\n<tr style=\"height: 26px;\">\n<td style=\"width: 140px; height: 26px;\"><span style=\"color: #808080;\"><em>Zasada ACL<\/em><\/span><\/td>\n<td style=\"width: 629.867px; height: 26px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr style=\"height: 79px;\">\n<td style=\"width: 140px; height: 79px;\"><em><span style=\"color: #008000;\"> u<span style=\"color: #999999;\">[ser]<\/span>:UID:perms<\/span><\/em><\/td>\n<td style=\"width: 629.867px; height: 79px;\">Uprawnienia przypisywane do konkretnego u\u017cytkownika (nazwa u\u017cytkownika lub UID). U\u017cytkownik musi si\u0119 znajdowa\u0107 w pliku <em>\/etc\/passwd<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 53.3333px;\">\n<td style=\"width: 140px; height: 53.3333px;\"><em><span style=\"color: #008000;\"> g<span style=\"color: #999999;\">[roup]<\/span>:GID:perms<\/span><\/em><\/td>\n<td style=\"width: 629.867px; height: 53.3333px;\">Uprawnienia przypisywane do konkretnej grupy\u00a0 (nazwa u\u017cytkownika lub GID). U\u017cytkownik musi si\u0119 znajdowa\u0107 w pliku <em>\/etc\/group<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 79px;\">\n<td style=\"width: 140px; height: 79px;\"><em><span style=\"color: #008000;\"> m<span style=\"color: #999999;\">[ask]<\/span>:perms<\/span><\/em><\/td>\n<td style=\"width: 629.867px; height: 79px;\">\u00a0Maksymalne uprawnienia jakie konkretny u\u017cytkownik lub grupa mo\u017ce mie\u0107 mie\u0107 na pliku lub katalogu. Np. <em>rw- <\/em>oznacza, \u017ce \u017caden u\u017cytkownik lub grupa nie b\u0119dzie <em>mia\u0142 wi\u0119kszych uprawnie\u0144 ni\u017c odczyt i zapis. <\/em><\/td>\n<\/tr>\n<tr style=\"height: 53px;\">\n<td style=\"width: 140px; height: 53px;\"><em><span style=\"color: #008000;\"> o<span style=\"color: #999999;\">[ther]<\/span>:perms<\/span><\/em><\/td>\n<td style=\"width: 629.867px; height: 53px;\">\u00a0Uprawnienia przypisane u\u017cytkownikom nie nale\u017c\u0105cym do grupy b\u0119d\u0105cej w\u0142a\u015bcicielem.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Znaczenie maski w ACL<\/span><\/p>\n<p>Maska ACL determinuje maksymalne mo\u017cliwe uprawnienia przyznane konkretnemu u\u017cytkownikowi b\u0105d\u017a grupie do pliku lub folderu. Je\u017celi maska na przyk\u0142ad ustawiona jest na <em>rw<\/em> to \u017caden u\u017cytkownik czy grupa nie przekroczy tych uprawnie\u0144. Opcja &#8211;<em>c<\/em> powoduje, \u017ce <em>getfacl<\/em> nie wy\u015bwietla nag\u0142\u00f3wka:<\/p>\n<pre># getfacl \u2013c file1  \r\nuser::rw  \r\ngroup::r--  \r\nother::r--<\/pre>\n<p>Je\u017celi przyznamy u\u017cytkownikowi <em>user1<\/em> prawo do zapisu i odczytu i zmienimy mask\u0119 na tylko do odczytu w tym samym czasie to efektywnymi uprawnieniami dla <em>user1<\/em> b\u0119dzie tylko odczyt:<\/p>\n<pre># setfacl \u2013m u:user1:rw,m:r file1 \r\n# getfacl \u2013c file1 \r\nuser::rw \r\nuser:user1:rw-\u00a0\u00a0 #effective:r-- \r\ngroup::r-- \r\nmask::r-- \r\nother::r--<\/pre>\n<p>Czyli u\u017cytkownik user1 nie b\u0119dzie m\u00f3g\u0142 modyfikowa\u0107 tego pliku mimo, \u017ce wydaje si\u0119, \u017ce ma uprawnienia do zapisu. Po zmianie maski jak poni\u017cej u\u017cytkownik user1 b\u0119dzie m\u00f3g\u0142 modyfikowa\u0107 plik file1.<\/p>\n<pre># setfacl \u2013m m:rw file1 \r\n# getfacl \u2013c file1 \r\nuser::rw \r\nuser:user1:rw \r\ngroup::r-- \r\nmask::rw\r\nother::r--<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0106wiczenie 1. Okre\u015bl, ustaw i wykasuj ACL.<\/p>\n<p>1. Zaloguj si\u0119 jako <em>user1<\/em> i utw\u00f3rz plik <em>file1<\/em>. Uruchom polecenia <em>ll<\/em> (ls -l) i <em>getfacl<\/em> na pliku <em>file1<\/em> i sprawd\u017a czy na pliku s\u0105 ustawione jakie\u015b ACL.<\/p>\n<pre>$ pwd \/home\/user1\r\n$ touch file1\r\n$ ll file1\r\n-rw-rw-r--. 1 user1 user1 0 Nov 4 21:12 file1\r\n\r\n$ getfacl file1\r\nfile: file1\r\nowner: user1\r\ngroup: user1\r\nuser::rw\r\ngroup::rw\r\nother::r--<\/pre>\n<p>Wyj\u015bcie wskazuje na to, \u017ce na pliku nie ma \u017cadnych ACL.<\/p>\n<p>2. Prze\u0142\u0105cz si\u0119 teraz na konto root i sprawd\u017a system plik\u00f3w. Je\u017celi jest to system plik\u00f3w extended to odpal <code>mount | grep home<\/code> aby sprawdzi\u0107 czy wsparcie dla ACL jest w\u0142\u0105czone. Je\u017celi nie to wydaj komend\u0119:<\/p>\n<pre># mount \u2013o remount,acl \/home<\/pre>\n<p><span style=\"color: #ff0000;\">Wskaz\u00f3wka na egzamin: Je\u017celi system plik\u00f3w, na kt\u00f3rym u\u017cywasz ACL to extended, zmodyfikuj plik <code>\/etc\/fstab<\/code> i zast\u0105p \u2018<code>defaults<\/code>\u2019 with \u2018<code>acl<\/code>\u2019 (lub dodaj \u2018<code>acl<\/code>\u2019 je\u017celi s\u0105 dodane inne opcje) w polu opcji montowania.<\/span><\/p>\n<p>3. Jako u\u017cytkownik <em>user1<\/em> przyznaj u\u017cytkownikowi <em>user3<\/em> uprawnienia <em>rwx<\/em> komend\u0105 <em>setfacl<\/em>. U\u017cyj notacji oktalnej<\/p>\n<pre>$ setfacl \u2013m u:user3:7 file1<\/pre>\n<p>4. Komend\u0105 <em>ll<\/em> zweryfikuj czy przy ustawieniach uprawnie\u0144 pojawi\u0142 si\u0119 znaczek +. Komend\u0105 <em>getfacl<\/em> zweryfikuj ustawienia ACL pliku.<\/p>\n<pre>$ ll\r\n-rw-rwxr--+ 1 user1 user1 0 Nov 4 21:12 file1\r\n\r\n$ getfacl \u2013c file1\r\nuser::rw\r\n<strong>user:user3:rwx<\/strong>\r\ngroup::rw\r\n<strong>mask::rwx<\/strong>\r\nother::r--<\/pre>\n<p>Dla u\u017cytkownika <em>user3<\/em> dodany jest nowy wiersz z uprawnieniami <em>rwx<\/em>. Wiersz z mask\u0105 <em>rwx<\/em> tak\u017ce jest dodany.<\/p>\n<p>5. Dodaj u\u017cytkownika <em>user4<\/em> z uprawnieniami odczyt\/zapis do pliku <em>file1<\/em> u\u017cywaj\u0105c notacji symbolicznej:<\/p>\n<pre>$ setfacl \u2013m u:user4:rw file1\r\n$ getfacl file1\r\nuser::rw\r\nuser:user3:rwx\r\nuser:user4:rw\r\ngroup::rw\r\nmask::rwx\r\nother::r--<\/pre>\n<p>6. Usu\u0144 wpis ACL dla u\u017cytkownika <em>user3<\/em> i potwierd\u017a:<\/p>\n<pre>$ setfacl \u2013x u:user3 file1\r\n$ getfacl file1\r\nuser::rw\r\nuser:user4:rw\r\ngroup::rw\r\nmask::rw\r\nother::r--<\/pre>\n<p>Warto\u015b\u0107 maski zosta\u0142a zredukowana do odczyt\/zapis co odnosi si\u0119 do maksymalnych uprawnie\u0144 przyznanych u\u017cytkownikowi <em>user4<\/em>.<\/p>\n<p>7. Usu\u0144 wszystkie wpisy ACL na pliku <em>file1<\/em> zweryfikuj poleceniem <em>getfacl<\/em>:<\/p>\n<pre>$ setfacl \u2013b file1\r\n$ getfacl \u2013c file1<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Domy\u015blne ACL<\/span><br \/>\nCzasami zachodzi potrzeba aby wielu u\u017cytkownik\u00f3w, kt\u00f3rzy nale\u017c\u0105 do r\u00f3\u017cnych grup, wsp\u00f3\u0142dzieli\u0142o jeden katalog. Potrzebuj\u0105 oni tak ustawionych uprawnie\u0144 aby pliki i podkatalogi utworzone w katalogu nadrz\u0119dnym dziedziczy\u0142y te uprawnienia. W taki spos\u00f3b u\u017cytkownicy nie musz\u0105 ustawia\u0107 uprawnie\u0144, kt\u00f3re ustawili na katalogu nadrz\u0119dnym, na ka\u017cdym pliku i podkatalogu z osobna. Takie wymaganie spe\u0142nia domy\u015blne ACL.<\/p>\n<table style=\"width: 788.9px;\">\n<tbody>\n<tr>\n<td style=\"width: 160px;\"><span style=\"color: #999999;\">ACL<\/span><\/td>\n<td style=\"width: 610.9px;\"><span style=\"color: #999999;\">Opis<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\"><em><span style=\"color: #008000;\">d<span style=\"color: #999999;\">[efault]<\/span>:u:perms<\/span><\/em><\/td>\n<td style=\"width: 610.9px;\">Domy\u015blne standardowe uprawnienia dla w\u0142a\u015bciciela.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\"><em><span style=\"color: #008000;\">d<span style=\"color: #999999;\">[efault]<\/span>:u:UID:perms<\/span><\/em><\/td>\n<td style=\"width: 610.9px;\">Domy\u015blne uprawnienia dla konkretnego u\u017cytkownika (jego nazwa lub UID).<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\"><em><span style=\"color: #008000;\">d<span style=\"color: #999999;\">[efault]<\/span>:g:perms<\/span><\/em><\/td>\n<td style=\"width: 610.9px;\">\u00a0Domy\u015blne standardowe uprawnienia dla grupy.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\"><em><span style=\"color: #008000;\">d<span style=\"color: #999999;\">[efault]<\/span>:g:GID:perms<\/span><\/em><\/td>\n<td style=\"width: 610.9px;\">\u00a0Domy\u015blne uprawnienia dla konkretnej grupy (jego nazwa lub GID).<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\"><em><span style=\"color: #008000;\">d<span style=\"color: #999999;\">[efault]<\/span>:o:perms<\/span><\/em><\/td>\n<td style=\"width: 610.9px;\">\u00a0Domy\u015blne uprawnienia dla innych.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 160px;\"><em><span style=\"color: #008000;\">d<span style=\"color: #999999;\">[efault]<\/span>:m:perms<\/span><\/em><\/td>\n<td style=\"width: 610.9px;\">\u00a0Domy\u015blne maksymalne uprawnienia, kt\u00f3re mo\u017ce mie\u0107 u\u017cytkownik lub grupa gdy tworzy plik lub katalog z domy\u015blnymi ACL.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>\u0106wiczenie 2. Ustaw, potwierd\u017a i usu\u0144 domy\u015blne ACL.<\/p>\n<p>1. Zaloguj si\u0119 jako u\u017cytkownik <em>user4<\/em> i utw\u00f3rz katalog <em>projects<\/em>. Poleceniem <em>getfacl<\/em> sprawd\u017a domy\u015blne uprawnienia.<\/p>\n<pre>$ pwd\r\n\/home\/user4\r\n\r\n$ mkdir projects\r\n$ getfacl projects\r\n# file: project\r\n# owner: user4\r\n# group: user4\r\nuser::rwx\r\ngroup::rwx\r\nother::r-x<\/pre>\n<p>2. Komend\u0105 <em>setfacl<\/em> przyznaj uprawnienia do odczytu i zapisu u\u017cytkownikom <em>user1 <\/em>i <em>user3<\/em>. Uruchom to polecenie jako <em>user4 <\/em> i korzystaj z notacji oktalnej.<\/p>\n<pre>$ setfacl \u2013m d:u:user1:6,d:u:user3:6 projects\r\n$ getfacl \u2013c projects\r\nuser::rwx\r\ngroup::rwx\r\nother::r-x\r\ndefault:user::rwx\r\ndefault:user:user1:rw\r\ndefault:user:user3:rw\r\ndefault:group::rwx\r\ndefault:mask::rwx\r\ndefault:other::r-x<\/pre>\n<p>3. W katalogu <em>projects <\/em>utw\u00f3rz podkatalog <em>prj1 <\/em>i sprawd\u017a czy odziedziczy\u0142 ustawienia ACL z katalogu nadrz\u0119dnego.<\/p>\n<pre>$ cd projects ; mkdir prj1\r\n$ getfacl \u2013c prj1\r\nuser::rwx\r\nuser:user1:rw\r\nuser:user3:rw\r\ngroup::rwx\r\nmask::rwx\r\nother::r-x\r\ndefault:user::rwx\r\ndefault:user:user1:rw\r\ndefault:user:user3:rw\r\ndefault:group::rwx\r\ndefault:mask::rwx\r\ndefault:other::r-x<\/pre>\n<p>4. Utw\u00f3rz plik <em>file1<\/em> w katalogu <em>projects<\/em> i sprawd\u017a czy odziedziczy\u0142 ACL z katalogu nadrz\u0119dnego.<\/p>\n<pre>$ touch file1\r\n$ getfacl \u2013c file1\r\nuser::rw\r\nuser:user1:rw\r\nuser:user3:rw\r\ngroup::rwx ;#160; #effective:rw\r\nmask::rw\r\nother::r--<\/pre>\n<p>Wynika st\u0105d, \u017ce maksymalne uprawnienia dla cz\u0142onk\u00f3w grupy to odczyt i zapis. Prawo do wykonywania jest nieefektywne ze wzgl\u0119du na ustawienia maski.<\/p>\n<p>5. Skasuj wszystkie domy\u015blne ustawienia ACL dla katalogu i potwierd\u017a.<\/p>\n<pre>$ setfacl \u2013k project\r\n$ getfacl \u2013c project\r\nuser::rwx\r\ngroup::rwx\r\nother::r-x<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Komendy om\u00f3wione w poprzednich artyku\u0142ach nie pozwalaj\u0105 niestety na nadawanie uprawnie\u0144 na danym pliku wi\u0119cej ni\u017c jednemu u\u017cytkownikowi lub grupie. Umo\u017cliwiaj\u0105 to listy kontroli dost\u0119pu (ACL &#8211; Access Control List), kt\u00f3re zapewniaj\u0105 mo\u017cliwo\u015b\u0107 ustawienia na plikach i katalogach rozszerzonej grupy uprawnie\u0144. Pozwalaj\u0105 administratorom ustawia\u0107 w taki spos\u00f3b uprawnienia , \u017ce r\u00f3\u017cni\u0105 si\u0119 one na poszczeg\u00f3lnych &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/miro.borodziuk.eu\/index.php\/2017\/03\/14\/listy-kontroli-dostepu-acl\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Listy kontroli dost\u0119pu (ACL)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1087,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/272"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=272"}],"version-history":[{"count":26,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/272\/revisions"}],"predecessor-version":[{"id":1286,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/272\/revisions\/1286"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1087"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=272"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}