PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rätsel



keiner_1
12.04.02, 11:39
Hallo Tuxer

Ich habe einige Rätel (wie verhaltet sich die Shell) für euch, viel Spass bei ausprobieren :-) (oder wissen)

Aufgabe 1) command a || command b | c
Aufgabe 2) { command a || command b} |command c

Da ich dieses Forum nicht nur mit Fragen eröffnen will hier ein nützlicher Befehl:

Wie finde ich alle Programme die ein SUID Bit gesezt haben und dem User Root gehören??? für die die SUID nie gehört hatten, hier (http://www.vibe.at/aktionen/200109/lsb-folien/lsb-24.html) eine Beschreibung!

mittels find

find / -user root -perm +7000 -print

das gleiche

find / -uid 0 -perm +7000 -print

Findet alle Files die dem Root gehören und höchstens die Rechtemaske 7000 haben, dann auf die Konsole herausgeschrieben

postet alles was euch dazu einfällt, sollte ein langer thread werden :-)

greetz

adme

CboyGeek
12.04.02, 11:55
[QUOTE]Original geschrieben von adme
[B]Hallo Tuxer

Ich habe einige Rätel (wie verhaltet sich die Shell) für euch, viel Spass bei ausprobieren :-) (oder wissen)

Aufgabe 1) command a || command b | c
Aufgabe 2) { command a || command b} |command c

Aufgabe 1: command a oder command b und command c
Aufgabe 2: keine ahnung...

lieg ich richtig?

keiner_1
12.04.02, 12:10
@CboyGeek

Ja du liegst nicht richtig: er führt wenn a nicht erfolgreich war, die Pipe b | c aus, wenn er erfolgreich war dann komme die Pipe b | c nicht an die Reihe

die commands werde von links nach rechts abgearbeitet, oder?

@alle

die erste Aufgabe habe ich verraten, nun findet die zweite heraus!

greetz

adme

Trillian
12.04.02, 12:12
bla || foo
foo wird nur ausgeführt, wenn bla mit einem Fehler beendet wurde / sich beendet hat (Gegenteil von &&)

bla | foo
War wahrscheinlich ne Fangfrage :D
Erst durch || verunsichern, dann mit | kommen (stdout von bla an stdin von foo übergeben; | heisst "pipe")

Edit:
Ups, zu spät ;)

keiner_1
12.04.02, 12:15
@Trillian ja ich gebe zu ich war ein bisschen fies :-) ich wills ja nicht zu einfach machen

übrigens die Augabe zwei kann man auch ausprobieren!!

greetz

adme

Trillian
12.04.02, 12:20
Original geschrieben von adme
übrigens die Augabe zwei kann man auch ausprobieren!!

Ich bin schon erleuchtet, will aber nicht alles vorher verraten. Die anderen wollen auch noch was zum "rätseln" haben :D

McG.linux
12.04.02, 14:03
rätseln?

na conmand a oder comand b und auf jeden Fall danach command c, oder? ;)

Gruß
McG.linux

keiner_1
12.04.02, 14:10
genau!

was meint ihr zu dem find command, kennt ihr noch clevere Optionen

greetz

adme

msi
03.05.02, 19:34
ja ne sehr clevere Option sogar:

man find

da kann man alle optionen sehen ;-)

keiner_1
04.05.02, 12:54
Sali

weiss du Newbies werden nicht immer von den man Seiten schlau!!! die haben lieber einen HOWTO text oder sowas!

greetz

adme

zander
08.05.02, 05:19
Um für jeden Treffer einer Suche mit find einen Befehl auszuführen bieten sich zwei Möglichkeiten; der interne exec Befehl und xargs:

find . -name \*.c | xargs grep -li "printf"
find . -name \*.c -exec grep -li "printf" {} \;

Sandal
07.06.02, 19:16
Manchmal muß man die Klammern auch mit einem \ versehen:

find . -name \*.c -exec grep -li "printf" \{\} \;

Ein beliebter Fehler (von mir zumindest) ist auch das Leerzeichen vor dem \; zu vergessen.

Sandal