Shellfunktion wegen Rootrechten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Shellfunktion wegen Rootrechten

Beitrag von chabayo » 19.09.2009 17:53:41

Hi,...

...ich mag sudo nicht, darum habe ich mir folgende Shellfunktion zurechtgeletL

Code: Alles auswählen

root () 
{ 
    test -z $1 || { 
        su root -c "${@}";
        return
    };
    exec=`fc -ln | cut -b 3- | tail -n 1`;
    su root -c "$exec"
}
...das hatte so nicht funktioniert, sprich der Code nach dem 'test' hatte nicht geklappt, der andere Part schon - aber eben beim schreiben dieses Posts viel mir ein ich koennte $@ einfach einer Variablen 'exec' zuweisen und die Funktion umschreiben, dann also so:

Code: Alles auswählen

function root {
        if test -z $1
                then
                exec=`fc -ln -1`;
                else
                exec="$@"
                fi
        su root -c "$exec";
 }
...damit klappt es jetzt.

Doch nun will ich, weil ich den Post schon angefangen habe, gerne wissen warum das 1. nicht funktionierte, und was jetzt den Unterschied zwischen z.B. $variable und ${variable} ausmacht.

Vllt. kann mir auch jemand sagen ob es geht, das ich z.B. einem job in der Shell eine ander UID zuweise, oder vllt. auch nur einem Prozess eine andere UID zuweise; Hintergrund: ich schreib manchmal mit nano (Editor) eine Konfigurationsdatei um, und kann nicht speichern weil ich vergass das ich als User keine Schreibrechte hab.

Ein wenig Aufklaerung waere fein...

Danke
Watt about the non-digital!?

rechtskurril
Beiträge: 16
Registriert: 02.06.2009 12:57:29
Wohnort: Dortmund

Re: Shellfunktion wegen Rootrechten

Beitrag von rechtskurril » 19.09.2009 19:35:10

Vllt. kann mir auch jemand sagen ob es geht, das ich z.B. einem job in der Shell eine ander UID zuweise, oder vllt. auch nur einem Prozess eine andere UID zuweise; Hintergrund: ich schreib manchmal mit nano (Editor) eine Konfigurationsdatei um, und kann nicht speichern weil ich vergass das ich als User keine Schreibrechte hab.
Das sowas möglich ist, kann ich mir kaum vorstellen, dies würde das Sicherheitskonzept bestimmt aus-hebeln.
Darum nutze ich den Editor vim, dort kann ich nachträglich eine Datei als root speichern.
Stichwort:

Code: Alles auswählen

:w !sudo tee %

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Re: Shellfunktion wegen Rootrechten

Beitrag von chabayo » 19.09.2009 20:19:31

...bin manchmal schon sehr verkorkst...das ich das als tmp speichern kann sollte mir vorher schon in den Sinn gekommen sein.

Da mir nano beim Speichern sowieso vorher den Namen fokussiert um den Vorgang zu bestaetigen kann ich eine Endung ala '.root' anhaengen, und die Shellfunktion dahingehend erweitern das Sie mir ein solches File platziert.

Trotzden, sudo wird auch als hoehere UID wie 0 aufgerufen, aber, trotzdem kein Daemon im Spiel ist, handelt es als root - doch nach naeherem hinsehen stelle ich fest es hat das sUID-Bit gesetzt.

Bin jetzt noch am Raetseln warum das als Sicherheitsrisiko angesehen wird; klar ist jeder Prozess mit UID 0 ein Systemfehler, LOL, aber mir leuchtet noch nicht ganz ein wieso man einem Prozess keine andere UID zuweisen will. Ist es selbstschutz des (System-)Programmierers vor der eigenen Dummheit!? - wahrscheinlich, oder...

Danke @ rechtskurril
Watt about the non-digital!?

Antworten