• Keine Ergebnisse gefunden

AlsBeispielfürdieVerwendungdieserStrukturkönnenSiedasBuiltinexitbetrahten: int exit_builtin(strlist* tokens

N/A
N/A
Protected

Academic year: 2021

Aktie "AlsBeispielfürdieVerwendungdieserStrukturkönnenSiedasBuiltinexitbetrahten: int exit_builtin(strlist* tokens"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

MihaelMattes Blatt5

A

Systemnahe Software (II)

im Sommersemester 2009

Abgabetermin:27.Mai2009

16 Siherheit und das SUID-Bit (7 Punkte)

ShreibenSieeinProgrammpubat.,welhesalsArgumenteinenDateinamenerhält, die-

senalsrelativenPfadzumUnterverzeihnispub/IhresHeimatverzeihnissesinterpretiertund

dieentsprehendeDateiausgibt.Hinweis:SiedürfenIhrHeimatverzeihnisdirektindenCode

shreibenundmüssenesnihtausdemEnvironmentbeziehen.Dasnenntmanumgangssprah-

lihauhfestverdrahten.

WennSiedasProgrammselbstausführen,solltenalsofolgendeBefehledasselbeErgebnis

liefern:

$ at ${HOME}/pub/unter/datei.t xt

$ pubat unter/datei.txt

Angenommen,dieDateiwärevon jedemausführbarundbesäÿe dasSetUID-Bit(zuset-

zenmithmod +s pubatbzw.hmod 04xxx pubat).WelhesSiherheitsproblemstelltdies

(mindestens!)dar?NennenSiezweiMöglihkeiten,diesesProblemzubeheben.

tinysh erweitern

In den folgenden Aufgaben werden wir unsmit einer einfahen Shell-Implementierung,der

tinysh, befassen. In jeder Aufgabe gehtes darum,einen bestimmten Bereih der Shell zu

verbessernbzw.zuerweitern.

17 Builtin-Shnittstelle (7 Punkte)

ShaenSieindertinysheineShnittstelle,dieesermögliht,einfaheShell-Builtinseinzubau-

en.DiesesollenbevorzugtvoreventuellgleihnamigenBefehlenausgeführtwerden.

DergutenErweiterbarkeithalbersolljedesBuiltinderShellübereineeinheitliheStruktur

bekanntgegebenwerden.DieseStrukturenthältdenKommandonamendesBuiltinssowieeinen

har *mdname;

int (*funtion)(strlist* tokens);

}

Dietinyshmussüberprüfen,obdasersteTokenderZeilemitdemmdname einesBuiltins

übereinstimmtunddiesesdannggf.ausführen.

AlsBeispielfürdieVerwendungdieserStrukturkönnenSiedasBuiltinexitbetrahten:

int exit_builtin(strlist* tokens) {

exit(0);

return 0; // wird niht erreiht, ist aber syntaktish korrekt

}

strut builtin exitbuiltin;

exitbuiltin.mdname = "exit";

exitbuiltin.funtion = &exit_builtin;

// Alternativ geht es auh so direkt:

strut builtin exitbuiltin = {

"exit",

&exit_builtin

};

NoheinTipp:FallsSiedieseAufgabenihtshaen,könnenSiedienahfolgendenAufga-

bentrotzdemlösen,indemSiesihanobigemBeispielorientieren.

18 Builtin eho (3 Punkte)

ShreibenSieeinBuiltineho,welhesdieangegebenenArgumentewiederaufderStandard-

ausgabeausgibt.Vorsiht:BeidieserAufgabemüssenSiesiherstellen,dassauhwirklihIhr

Builtinausgeführtwirdundniht/bin/eho-testen Siediesggf.durhdasEinfügeneiner

ZusatzausgabeinIhrerImplementation.DasgleihegiltfürdiefolgendenbeidenAufgaben.

19 Builtin env (3 Punkte)

ShreibenSieeinBuiltinenv,welhesalleUmgebungsvariablenaufderStandardausgabeaus-

gibt.

20 Builtin setenv (3 Punkte)

ShreibenSieeinBuiltinsetenv,welheseineUmgebungsvariablezumEnvironmenthinzufügt.

SiekönnenaufdiePrüfungdoppeltvorhandenerUmgebungsvariablenverzihten.EinBeispiel

hierzuwäre:

(2)

A=1

%% setenv B=2

%% env

A=1

B=2

%% setenv A=3

%% env

A=1

B=2

A=3

%%

21 Parsererweiterung (7 Punkte)

ErweiternSiedenParserdertinyshso,dassnihtnurLeerzeihen,sondernauhTabulatorzei-

hen(Tabs)alsTrennzeihenzwishendenTokensstehenkönnen.

Referenzen

ÄHNLICHE DOKUMENTE

2 Im Rahmen dieser Arbeit wird unter dem Begriff Multikanalsystem ein System verstanden, das in der Lage ist, unterschiedliche fachliche und technische Kan¨ale einheitlich zu

Erweiterbarkeit durch Module f¨uhrt zum einen zu einer gewissen Herstellerunabh¨angig- keit, da nicht nach Feststellung eines Bedarfs f¨ur bestimmte Aktivit¨aten auf eine

Carl- Erich Alken, Direktor der Urologischen Klinik und Poliklinik der Universität des Saarlandes, der das Fach Urologie in der medizinisch-wissenschaftlichen Redaktion des

Als es in Brandenburg kürzlich darum ging, den verga- bespezifischen Mindestlohn anzupassen, haben die Gewerkschaften in der Kommission aus guten Gründen der mageren Anhebung von

Bundes- gesundheitsministerin Ulla Schmidt brachte soeben eine Beitragssatzstei- gerung von 0,2 Prozent ins Gespräch, und sie gab auch zu überlegen, dass bei einer künftigen

Er läßt seine Überzeugung verbrei- ten, „Arbeitsmarktprobleme für Mediziner wird es auf absehbare Zeit nicht geben", und macht dazu folgende Rechnung auf: Die

weder man qualifizierte sich direkt mit der ersten Aufgabe - der Gestaltung eines Geländers für die neu geschaffene Plattform über dem neuen Hörsaal in der Rechbauerstraße - oder

Beispiel: Für 25 „Tokens“ kann das Kind den eigentlichen Verstärker erhalten. Beispiele für Verstärker, die das Kind mit den „Tokens“