Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl: CDrom mounten und lesen



sowatt
20-05-2003, 15:37
Hallo,
nach ewiger erfolgloser Suche muss ich doch mal um Hilfe bitten.

Ich möchte mit Perl den Inhalt einer CD-ROM auslesen und in einer Textdatei
abspeichern.
Das ganze soll so eine Art CD-Datenbank werden in Perl/Tk.
Nun habe ich schon einiges an Büchern und im Netz durchsucht aber nichts
gefunden was mir da weiterhilft.

Vielleicht hat jemand einen Lösungsansatz oder einen Link für mich?
ich hoffe ich habe das soweit detailliert genug beschrieben?

Vielen Dank
MfG
sowatt

tomes
20-05-2003, 19:01
einfach machen:


system("mount /dev/cdrom /mnt");
use File::Find;
use File::Basename;

open(MT,">meineTextFile");
find(\&wanted, "/mnt");
sub wanted {
return unless -f;
print MT basename($File::Find::name);
}
close(MT);
system("umount /dev/cdrom");


Natuerlich muesste das Ganze im wanted bestimmt noch ausgebaut/angepasst werden.
Wenn es nur reine MusikCD sind, wuerd ich raten, dir mal die SDL Pakete anzuschauen.
http://search.cpan.org

T;o)Mes

sowatt
21-05-2003, 03:43
Hi,
vielen Dank erstmal, aber um Audio CD's wird sich das ganze
eher nicht drehen.
Gibt es denn da keine Möglichkeit das ganze ohne Linux-Shell
Befehle zu machen? Ich hatte gehofft das Perl da die passenden
Möglichkeiten hat.

MfG
sowatt

elrond
21-05-2003, 09:11
Gibt es denn da keine Möglichkeit das ganze ohne Linux-Shell ...

das mounten macht eh das betriebssystem, ist egal auf welchem weg du es initiierst.

sowatt
21-05-2003, 13:27
Hi,
vielen Dank.
Dann werde ich das mal so machen.

MfG
sowatt

sowatt
24-05-2003, 12:51
Hallo,
nun muss ich nochmal nachfragen.
Wenn ich versuche über system das CD-ROM zu mounten bekomme
ich die Meldung: "mount" nur root darf das ?!

Ich bin aber der Meinung das ich das Skript auch als user ausführen können
muss da ich auch als user mein CD-ROM mounten kann(per klick auf Icon).

Kann mir da jemand einen Tipp geben wo ich suchen muss oder wie
ich das hinbekomme(in der perlfunc zu system und qx habe ich nichts gefunden)?
Vielen Dank

MfG
sowatt

tomes
24-05-2003, 19:04
am Perl - Interpreter.
Dieser startet aus Sicherheitsgruenden nie als root. Ausser du willst es.
Es gibt zwei Moeglichkeiten:
1. suidperl
2. suid-bit fuer das Script setzen.

T;o)Mes

sowatt
25-05-2003, 03:49
Hi,
wenn ich das suidbit setze dann bekomme ich nur
ein: can't setuid von Perl.
Über suidperl habe ich garnichts gefunden außer das ich das
auf meinem Rechner habe.
Ich glaube das ich mich da ein wenig blöde anstelle, vielleicht
hat noch jemand einen Tipp für mich?

Vielen Dank

MfG
sowatt

tomes
25-05-2003, 13:45
Lies dir mal die Perldocumentation perlsec durch.
Wenn du ein suid Bit setzt werden bestimmte Befehle getainted.
Du must das dann z.B. durch setzen von Umgebungsvariablen aendern bzw. erlauben.
Wie gesagt --> man perlsec

T;o)Mes

sowatt
26-05-2003, 03:11
Hallo,
vielen Dank, habe es hinbekommen.

MfG
sowatt