[[Vorlage(Archiviert)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Terminal: Terminal bedienen] [:Benutzer_und_Gruppen#Terminal: Benutzerverwaltung] [:sudo/Konfiguration: Sudo konfigurieren] }}} [[Inhaltsverzeichnis(1)]] Dieser Artikel beschreibt anhand eines einfachen Beispiels mit [:AppArmor:] wie man einen Benutzer mit Loginrechten auf wenige explizit definierte Systemaufrufe beschränken kann. Die hier vorgestellte Methodik steht keineswegs alleine. Als Alternativen sei an dieser Stelle auf die Verwendung von [wikipedia:SELinux:], [wikipedia_en:Smack:] und eingeschränkte Shells verwiesen. = Anlegen der neuen Shell = Zunächst wird durch einen Hardlink eine neue Zugriffsmöglichkeit geschaffen. Voraussetzung dafür ist lediglich, dass sich der Link auf der selben Partition wie die ursprüngliche Shell befindet. Sofern möglich bietet sich '''/usr/local/bin''' als Zielpfad an. {{{#!vorlage Befehl sudo ln /bin/bash /usr/local/bin/sicherheitsBash }}} Die neue Shell wird anschließend in '''/etc/shells''' eingetragen und damit zur zugelassenen Loginshell. = Benutzer mit neuer Shell anlegen = Der Benutzer, dessen Rechte extrem eingeschränkt werden sollen, wird angelegt und ihm wird die neue Shell als Loginshell zugewiesen. {{{#!vorlage Befehl sudo adduser --shell /usr/local/bin/sicherheitsBash eingeschraenkt }}} = Rechte einräumen = Mittels visudo werden "eingeschraenkt" die Tätigkeiten ermöglicht, zu denen er in der Lage sein soll. In diesem Beispiel das Neuladen der Konfiguration des Apache Webservers. {{{ eingeschraenkt ALL = NOPASSWD: /etc/init.d/apache2 reload }}} = Apparmor Profil anlegen = Nun wird das AppArmor-Profil angelegt: '''/etc/apparmor.d/usr.local.bin.sicherheitsBash''' {{{ /usr/local/bin/sicherheitsBash { /usr/bin/sudo pxr, } }}} Hat man noch kein Profil für sudo, so kann zu Testzwecken "uxr" verwendet werden. Davon ist produktiv natürlich abzuraten. = Abschluss = Soll der neue Zugang für einen Menschen aus Fleisch und Blut und nicht für ein Skript dienen, so sollten nun noch einige Verschönerungsarbeiten durchgeführt werden. Meldungen wie {{{ /etc/profile: Permission denied }}} sorgen nicht unbedingt für eine schöne Arbeitsumgebung. Mangels Autovervollständigung und History bietet es sich darüber hinaus an, sinnvolle Aliase oder Funktionen, je nach Shell, zu definieren. = Links = * [:AppArmor:] - Hauptartikel #tag: Sicherheit, Shell