{"id":362,"date":"2017-03-27T23:37:32","date_gmt":"2017-03-27T21:37:32","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=362"},"modified":"2017-05-30T14:18:13","modified_gmt":"2017-05-30T12:18:13","slug":"wykonywanie-komend-jako-superuzytkownik","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/03\/27\/wykonywanie-komend-jako-superuzytkownik\/","title":{"rendered":"Wykonywanie komend jako superu\u017cytkownik"},"content":{"rendered":"<p>Komendy wymagaj\u0105ce uprawnie\u0144 superu\u017cytkownika mog\u0105 by\u0107 wykonywane bez znajomo\u015bci has\u0142a roota dzi\u0119ki narz\u0119dziu <em>sudo<\/em> (superuser do). Plikiem konfiguracyjnym tego narz\u0119dzia jest <em>\/etc\/sudoers<\/em>, kt\u00f3ry mo\u017ce by\u0107 edytowany przez<em> visudo<\/em>.<!--more--><\/p>\n<p>Sk\u0142adnia wpis\u00f3w w tym pliku dla u\u017cytkownika <em>user1<\/em> i grupy <em>dba<\/em> wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><span style=\"color: #808080;\"><code>user1\u00a0 ALL=(ALL)\u00a0 ALL<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code> %dba\u00a0\u00a0 ALL=(ALL)\u00a0 ALL<\/code><\/span><\/p>\n<p>Takie wpisy spowoduj\u0105 przyznanie wszystkich uprawnie\u0144 do wszystkich polece\u0144 administracyjnych w systemie dla u\u017cytkownika <em>user1<\/em> oraz cz\u0142onk\u00f3w grupy <em>dba<\/em> (nazwa grupy poprzedzana jest znakiem %).<\/p>\n<p>Je\u017celi u\u017cytkownik <em>user1<\/em> lub cz\u0142onek grupy <em>dba<\/em> wykona uprzywilejowan\u0105 komend\u0119 zostanie poproszony o podanie swojego has\u0142a, np:<\/p>\n<pre><code>$ sudo system-config-users<\/code> <code> Password<\/code><\/pre>\n<p>Je\u017celi chcemy aby u\u017cytkownik\u00a0 <em>user1<\/em> i cz\u0142onkowie grupy <em>dba<\/em> nie byli pytani o has\u0142o to dodajemy takie wpisy do pliku <em>sudoers<\/em>:<\/p>\n<p><span style=\"color: #808080;\"><code>user1\u00a0 ALL=(ALL) \u00a0\u00a0\u00a0 \u00a0NOPASSWD: \u00a0\u00a0 ALL<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code> %dba\u00a0\u00a0 ALL=(ALL) \u00a0\u00a0 \u00a0 NOPASSWD: \u00a0\u00a0 ALL<\/code><\/span><\/p>\n<p>Aby u\u017cytkownikowi <em>user1<\/em> i grupie <em>dba<\/em> przyzna\u0107 prawo do wykonywania tylko konkretnych komend np. <em>\/usr\/bin\/system-config-printer<\/em> i <em>\/usr\/bin\/system-config-users <\/em>modyfikujemy wpisy:<\/p>\n<p><span style=\"color: #808080;\"><code>user1 \u00a0\u00a0 ALL=\/usr\/bin\/system-config-printer,\/usr\/bin\/system-config-users<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code> %dba \u00a0\u00a0 \u00a0ALL=\/usr\/bin\/system-config-printer,\/usr\/bin\/system-config-users<\/code><\/span><\/p>\n<p>Og\u00f3lnie sk\u0142adnia wpis\u00f3w w pliku <em>\/etc\/sudoers<\/em> wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><span style=\"color: #808080;\"><code>KTO\u00a0 GDZIE=(JAKO_KTO) POLECENIE<\/code><\/span><\/p>\n<p><span style=\"color: #008000;\"><em>KTO<\/em> <\/span>&#8211; pole wskazuje na list\u0119 u\u017cytkownik\u00f3w i grup (grupy rozpoczyna si\u0119 od znaku %), kt\u00f3rych definicja dotyczy,<br \/>\n<span style=\"color: #008000;\"><em>GDZIE<\/em><\/span> &#8211; pole jest istotne tylko gdy konfiguracja sudo wsp\u00f3\u0142dzielona jest pomi\u0119dzy wieloma komputerami, wskazuje na komputery, kt\u00f3rych definicja dotyczy, w \u015brodowiskach jedno komputerowych mo\u017cna u\u017cy\u0107 s\u0142\u00f3w ALL lub localhost,<br \/>\n<span style=\"color: #008000;\"><em>JAKO_KTO<\/em><\/span> &#8211; lista u\u017cytkownik\u00f3w, kt\u00f3rych uprawnienia mo\u017cna wykorzysta\u0107. W konfiguracji pole to mo\u017cna zaniecha\u0107,<br \/>\n<span style=\"color: #008000;\"><em>POLECENIE<\/em> <\/span>&#8211; polecenia lub lista polece\u0144, kt\u00f3rych definicja ta dotyczy Lista to wymienione nazwy po przecinkach.<\/p>\n<p>Dzia\u0142ania polece\u0144 mo\u017cna ogranicza\u0107 poprzez specjalne wyra\u017cenia (tzw. wildcards):<br \/>\n<span style=\"color: #008000;\"><em>&#8220;&#8221;<\/em><\/span> &#8211; polecenie mo\u017ce by\u0107 wywo\u0142ywane tylko bez argument\u00f3w,<br \/>\n<span style=\"color: #008000;\"><em>*<\/em> <\/span>&#8211; oznacza dowolny ci\u0105g znak\u00f3w,<br \/>\n<span style=\"color: #008000;\"><em>?<\/em><\/span> &#8211; oznacza dowolny znak,<br \/>\n<span style=\"color: #008000;\"><em>[&#8230;]<\/em> <\/span>&#8211; dowolny znak zawarty w nawiasach,<br \/>\n<span style=\"color: #008000;\"><em>[!&#8230;]<\/em><\/span> &#8211; dowolny znak poza tymi, kt\u00f3re zosta\u0142y zawarte w nawiasach<\/p>\n<p>UWAGA!!! Je\u017celi chcemy odwo\u0142a\u0107 si\u0119 do znak\u00f3w specjalnych wystarczy je poprzedzi\u0107 znakiem \\, tzn., je\u017celi definicja ma oznacza\u0107 znak a lub b lub c lub ! wystarczy zapisa\u0107 j\u0105 w formie [\\!abc]. Brak wildcarda r\u00f3wnoznaczny jest z u\u017cyciem *. Polecenia musz\u0105 by\u0107 wpisywane z pe\u0142n\u0105 \u015bcie\u017ck\u0105 dost\u0119pu.<\/p>\n<p>Lista polece\u0144 przyjmuje jeszcze dwa s\u0142owa poprzedzaj\u0105ce:<br \/>\n<span style=\"color: #008000;\"><em>PASSWD:<\/em><\/span> &#8211; domy\u015blnie aktywne, polecenia po nim wymienione b\u0119d\u0105 wymaga\u0142y podania has\u0142a u\u017cytkownika,<br \/>\n<span style=\"color: #008000;\"><em>NOPASSWD:<\/em> <\/span>&#8211; polecenia zawarte po nim b\u0119d\u0105 uruchamiane bez weryfikacji has\u0142em, W jednej linii mog\u0105 wyst\u0105pi\u0107 oba s\u0142owa.<\/p>\n<p>Przyk\u0142ad:<br \/>\n<span style=\"color: #808080;\"><code>%serwis ALL=(ALL) \/usr\/bin\/passwd [a-z]*, !\/usr\/bin\/passwd \"\", !\/usr\/bin\/passwd root, NOPASSWD: \/sbin\/ifconfig<\/code><\/span><\/p>\n<p>Wpis ten zezwala na u\u017cytkownikom nale\u017c\u0105cym do grupy <em>serwis<\/em> na zmian\u0119 has\u0142a ka\u017cdego u\u017cytkownikowi poza u\u017cytkownikiem root, natomiast komend\u0119 <em>ifconfig<\/em> (z ka\u017cdym parametrem) mog\u0105 uruchamia\u0107 bez potrzeby podawania has\u0142a.<\/p>\n<p>Sudo pozwala na u\u017cywanie alias\u00f3w do definiowania grup u\u017cytkownik\u00f3w, komend, host\u00f3w u\u017cywaj\u0105c dyrektyw:\u00a0 <em>User_Alias, Cmnd_Alias <\/em>i<em> Host_Alias<\/em>.<\/p>\n<p><span style=\"color: #808080;\"><code>Cmnd_Alias \u00a0\u00a0\u00a0 KOMENDY = \/usr\/bin\/yum, \/usr\/bin\/rpm<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code> User_Alias \u00a0\u00a0\u00a0 UZYTKOWNICY = user1, user2, user3, user4, user5<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code> %UZYTKOWNICY\u00a0\u00a0 ALL = KOMENDY <\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>%serwis\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ALL=(ALL) NOPASSWD: KOMENDY\u00a0<\/code><\/span><\/p>\n<p>Sudo loguje pozytywnie zako\u0144czon\u0105 autentykacj\u0119 u\u017cytkownik\u00f3w i wykonanie komend w pliku<em> \/var\/log\/secure.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Komendy wymagaj\u0105ce uprawnie\u0144 superu\u017cytkownika mog\u0105 by\u0107 wykonywane bez znajomo\u015bci has\u0142a roota dzi\u0119ki narz\u0119dziu sudo (superuser do). Plikiem konfiguracyjnym tego narz\u0119dzia jest \/etc\/sudoers, kt\u00f3ry mo\u017ce by\u0107 edytowany przez visudo.<\/p>\n","protected":false},"author":1,"featured_media":1293,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/362"}],"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=362"}],"version-history":[{"count":9,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/362\/revisions"}],"predecessor-version":[{"id":1296,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/362\/revisions\/1296"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1293"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=362"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}