{"id":1636,"date":"2016-11-18T06:00:25","date_gmt":"2016-11-18T05:00:25","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=1636"},"modified":"2020-11-04T13:17:12","modified_gmt":"2020-11-04T12:17:12","slug":"benutzer-die-ausfuehrung-eines-skripts-mit-sudo-gestatten","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/benutzer-die-ausfuehrung-eines-skripts-mit-sudo-gestatten\/","title":{"rendered":"Benutzer die Ausf\u00fchrung eines Skripts mit sudo gestatten"},"content":{"rendered":"<p>In diesem kurzen Tutorial wird beschrieben, wie man einem normalen Benutzer das Recht einr\u00e4umt, ein einzelnes Skript mit <code>sudo<\/code> auszuf\u00fchren. Das Tutorial ist auf alle Linux-Distributionen anwendbar, welche <code>sudo<\/code>[1. <a href=\"https:\/\/de.wikipedia.org\/wiki\/Sudo\">sudo &#8211; Wikipedia<\/a>] unterst\u00fctzen.<\/p>\n<h2>Schritt 1: Skript und Benutzerkonto erstellen<\/h2>\n<p>Zuerst wird nat\u00fcrlich das Skript ben\u00f6tigt, welches der neue Benutzer sp\u00e4ter ausf\u00fchren soll. Als Beispiel mag hier folgendes einfaches Beispiel dienen:<\/p>\n<pre>#!\/bin\/bash\necho \"Hallo Welt.\"\n<\/pre>\n<p><strong>Wichtig!<\/strong> Der Benutzer, welcher das Skript sp\u00e4ter ausf\u00fchren soll, darf selbst keine Schreibrechte darauf besitzen. Andernfalls k\u00f6nnte er das Skript bearbeiten und durch eintragen von <code>bash<\/code> eine root-shell \u00f6ffnen. <em>Danke an Gerald f\u00fcr diesen wichtigen Hinweis.<\/em><\/p>\n<p>Der Benutzer kann, sofern er nicht schon existiert, mit folgendem Kommando angelegt werden:<\/p>\n<pre>sudo adduser USERNAME\n<\/pre>\n<h2>Schritt 2: \/etc\/sudoers konfigurieren<\/h2>\n<p>Um einem Benutzer das Recht zu verleihen, gibt es grunds\u00e4tzlich mehrere M\u00f6glichkeiten.<\/p>\n<h3>Benutzer einer Gruppe hinzuf\u00fcgen<\/h3>\n<p>Auf vielen Linux-Distributionen existiert bereits eine Gruppe, deren Mitglieder die Berechtigung zur Verwendung von <code>sudo<\/code> besitzen. Unter Ubuntu ist dies z.B. die Gruppe &#8217;sudo&#8216;. Unter RHEL, CentOS und Fedora ist dies bspw. die Gruppe &#8218;wheel&#8216;. Um welche Gruppe es sich konkret handelt, kann in der Datei <em>\/etc\/sudoers<\/em> nachgeschlagen werden. Dort findet sich auf einem Ubuntu 16.04 LTS z.B. folgender Eintrag:<\/p>\n<pre># Allow members of group sudo to execute any command\n%sudo   ALL=(ALL:ALL) ALL\n<\/pre>\n<p>Da dem Benutzer im hier beschriebenen Fall jedoch nur erlaubt werden soll, ein einziges Skript mittels <code>sudo<\/code> auszuf\u00fchren, ist diese Methode ungeeignet.<\/p>\n<h3>Benutzer in \/etc\/sudoers<\/h3>\n<p>Um einem Benutzer das Recht zu gew\u00e4hren, ein bestimmtes Skript oder Programm mit <code>sudo<\/code> auszuf\u00fchren, kann der Benutzer wie folgt in die Datei <em>\/etc\/sudoers<\/em> eingetragen werden.<\/p>\n<p><strong>Wichtig!<\/strong> Die Datei <em>\/etc\/sudoers<\/em> sollte nur als root mit dem Kommando <code>visudo<\/code> editiert werden, da hiermit eine Syntaxpr\u00fcfung erfolgt. Eine Besch\u00e4digung der Datei <em>\/etc\/sudoers<\/em>, z.B. durch Syntaxfehler, kann dazu f\u00fchren, dass das gesamte System unbrauchbar wird.<\/p>\n<pre># User privilege specification\nUSERNAME    ALL=\/path\/to\/script.sh\n<\/pre>\n<p>Mit obiger Zeile wird dem Benutzer &#8218;USERNAME&#8216; erlaubt, das Skript unter <em>\/path\/to\/script.sh<\/em> mit <code>sudo<\/code> auszuf\u00fchren.<\/p>\n<p>Diese Methode ist bereits geeignet, um die gestellte Aufgabe zu l\u00f6sen.<\/p>\n<h3>Datei unter \/etc\/sudoers.d\/ erstellen<\/h3>\n<p>Unter aktuellen Versionen von Debian, Ubuntu, RHEL, CentOS und Fedora besteht die M\u00f6glichkeit, eine Datei im Verzeichnis <em>\/etc\/sudoers.d\/<\/em> zu erstellen, welche den Eintrag aus dem vorangegangenen Abschnitt enth\u00e4lt. Voraussetzung daf\u00fcr ist, dass die Datei <em>\/etc\/sudoers<\/em> folgende Direktive enth\u00e4lt:<\/p>\n<pre># See sudoers(5) for more information on \"#include\" directives:\n\n#includedir \/etc\/sudoers.d\n<\/pre>\n<p><em>Beachte:<\/em> Das Zeichen &#8218;#&#8216; vor &#8218;includedir&#8216; stellt in diesem Fall kein Kommentarzeichen dar.<\/p>\n<p>Diese Methode hat den Vorteil, dass die Datei <em>\/etc\/sudoers<\/em> unver\u00e4ndert bleibt und es bei Updates nicht zu einem Versionskonflikt kommen kann.<\/p>\n<h2>Fazit<\/h2>\n<p>Mittels <em>\/etc\/sudoers<\/em> ist es m\u00f6glich, <code>sudo<\/code>-Berechtigungen granular an Benutzer zu delegieren. Neben dem in diesem Tutorial beschriebenen Beispiel existieren noch weitere M\u00f6glichkeiten. Beispiele dazu finden sich in der Manpage von sudoers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem kurzen Tutorial wird beschrieben, wie man einem normalen Benutzer das Recht einr\u00e4umt, ein einzelnes Skript mit sudo auszuf\u00fchren. Das Tutorial ist auf alle Linux-Distributionen anwendbar, welche sudo[1. sudo &#8211; Wikipedia] unterst\u00fctzen. Schritt 1: Skript und Benutzerkonto erstellen Zuerst wird nat\u00fcrlich das Skript ben\u00f6tigt, welches der neue Benutzer sp\u00e4ter ausf\u00fchren soll. Als Beispiel mag<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/benutzer-die-ausfuehrung-eines-skripts-mit-sudo-gestatten\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"","_metis_text_length":0,"_post_count":0,"footnotes":""},"categories":[3],"tags":[439,440,430,305,389,437,438,60],"class_list":["post-1636","post","type-post","status-publish","format-standard","hentry","category-tutorials","tag-centos","tag-fedora","tag-osbn","tag-planet","tag-rhel","tag-sudo","tag-sudoers","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1636"}],"version-history":[{"count":4,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1636\/revisions"}],"predecessor-version":[{"id":2648,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1636\/revisions\/2648"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}