ADMIN-Tipp: Sudo und komplexe Kommandos

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

"Permission denied" trotz sudo? Das passiert und muss auch kein sudoer-Konfigurationsfehler sein. Woher der Effekt gerade bei komplexen Kommandos kommt und was man dagegen tut.

Über das Verzeichnis /proc/sys (und seine Unterverzeichnisse) lassen sich zur Laufzeit diverse Kernelparameter tunen. Neben der Vorsicht im Umgang mit denWerten, die hier immer geboten ist, ergibt sich dabei ein zweites Problem: Die fraglichen Dateien können nur von root beschrieben werden.
Möchte man beispielsweise dirty_expire_centisecs und dirty_writeback_centisecs in /proc/sys/vm heraufsetzen, damit ein Laptop seine Festplatte länger abgeschaltet lassen kann und die stromfressenden Schreibaktivitäten besser auf kurze Intervalle mit längeren Pausen konzentriert (was im Detail Stoff für einen anderen ADMIN-Tipp wäre), so würde man als normaler User mit einem  

jcb@hercules:/proc/sys/vm$ echo 10000 > dirty_expire_centisecs

eine Fehlermeldung ernten:                                                                                                                                                                                                                          

bash: dirty_expire_centisecs: Keine Berechtigung

Gut, also sollte man es vielleicht mit sudo versuchen? Aber auch ein

jcb@hercules:/proc/sys/vm$ sudo echo 10000 > dirty_expire_centisecs 

beschert nur wieder ein

bash: dirty_expire_centisecs: Keine Berechtigung

Warum? Weil jetzt zwar das Echo-Kommando mit Root-Rechten läuft, aber die Shell, die die Ausgabe von echo in das File umleitet, hat nach wie vor nur die Rechte des normalen Benutzers. Eigentlich erstrebt der Anwender aber den umgekehrten Fall: Beim echo sind die Rechte egal, aber die Shell für die Schreiboperation  muss privilegiert sein. Das gelingt zum Beispiel so:

jcb@hercules:/proc/sys/vm$ echo "echo 10000 > dirty_expire_centisecs" | sudo sh  
[sudo] password for jcb: ***********

jcb@hercules:/proc/sys/vm$ cat dirty_expire_centisecs 
10000
12.09.2012

Ähnliche Artikel

  • ADMIN-Tipp: Tipp-Ex für die Shell

    Die Bash kennt einige nette Tricks, die dem Kundigen die Arbeit erleichtern. So vertippt sich auch der größte Guru mal - aber er weiß sich danach elegant zu helfen.

  • ADMIN-Tipp: Passworte prüfen

    Ein schwaches Passwort ist im Handumdrehen geknackt.  Wird es dann womöglich auch noch mehrfach verwendet, stehen dem Angreifer Tür und Tor offen. Deshalb ist es ratsam, sich vorher zu überzeugen, dass das selbstgewählte Passwort einem Hacker mindestens ausreichend Schwierigkeiten macht.

  • ADMIN-Tipp: Linux-Speicherverbrauch immer im Blick

    Was ein Linux-Kommando alleine nicht kann, das schafft oft eine einfache Kombination: Zum Beispiel den Speicher en detail und ständig im Blick zu haben.

  • Was leisten Hybridfestplatten im Test?
  • ADMIN-Tipp: Wer swappt?

    Swapping ist historisch bedingt ein Angstbegriff des performancebewussten Admins, auch wenn es bei heutigen Hauptspeichergrößen selten auftritt. Wenn aber gerade einmal nichts von der Stelle kommt, ist es interessant zu wissen: Liegt es am Swap? Und welcher Prozess nutzt ihn denn?

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021