Schrift
[thread]5820[/thread]

wie fragt man was ab??



<< >> 9 Einträge, 1 Seite
-=$4$UK!=-
 2003-10-14 16:57
#63351 #63351
User since
2003-10-14
3 Artikel
BenutzerIn
[default_avatar]
hi all,

ich brauch mal ein perl script, das ein paar befehle in linux ausführt,

kenne mich mit php aus, und sehr wenig in c, in perl aber kaum

das script liegt im verzeichnis /home
die befehle die gemacht werden sollen:
Code: (dl )
1
2
mkdir $username
chmod 700 $username


dann sol ind die /var/spool/root folgendes eingetragen werden:
* * * * * /usr/sbin/usermod -d /home/$username $username

erst mal braucht man ja die variable $username, die soll entwerder abgefragt werden, oder beim aufrufen des scriptes angehängt..
das abfragen war ja in c scanf, ist das hier auch so???

wenn ich dann die variable hab, glaub ich mal muss ich folgendes machen:
Code: (dl )
1
2
system('mkdir '.$username);
system('chmod 700'.$username);

darüber bin ich mir aber nicht sicher...

über die sache mit cron kenn ich mich gar nett aus, wie mach ich das??

außerdem such eich noch ein tutorial für anfänger über perl, kennt jemand ein gutes??

vielen dank

sasuki
Relais
 2003-10-14 17:11
#63352 #63352
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Edit: Fullquote weil verklickt, sorry

[quote=-=$4$UK!=-,14.10.2003, 14:57]
Code: (dl )
1
2
mkdir $username
chmod 700 $username

[...]
außerdem such eich noch ein tutorial für anfänger über perl, kennt jemand ein gutes??
[/quote]
ja, perlintro als gutes Einstiegstutorial,
die Funktionen chmod und mkdir hat auch Perl:
<!--pod_f1--><a href="//www.perldoc.com/perl5.8.0/pod/func/chmod.html" target="_blank">perldoc <!--pod_f2-->-f chmod<!--pod_f3--></a><!--pod_f4-->, <!--pod_f1--><a href="//www.perldoc.com/perl5.8.0/pod/func/mkdir.html" target="_blank">perldoc <!--pod_f2-->-f mkdir<!--pod_f3--></a><!--pod_f4-->.

Die Parameterübergabe erlaubt eine Menge Möglichkeiten, dazu überlege Dir, wie die Übergabeschnittstelle aussehen soll. Kommandozeile oder grafisch? Interaktiv oder nicht?

cron widerspricht der Interaktivität und gewissermaßen auch der flexiblen Parameterübergabe, was hast Du da vor?\n\n

<!--EDIT|Relais|1066137223-->
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
-=$4$UK!=-
 2003-10-14 17:20
#63353 #63353
User since
2003-10-14
3 Artikel
BenutzerIn
[default_avatar]
hi,
also die paraeter übergabe soll irgendwie ausehen,
script -ob so, script /oder so etc..
hauptsache ich hab dann den wert in der variable $username

das mit cron soll einfach so sein das er die datei oeffnet und einfach die zeile unten reinmacht, das muss doch moeglich sein oda???

das brauche ich eigentlich nur weil confixx die user immer wieder überschreibt, den home ordner mein ich, und darum muss das mit cron sein,

vielen dank

sasuki
Relais
 2003-10-14 17:28
#63354 #63354
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Also, für den Start kannst Du die Übergabeparameter in einem Array namens
Code: (dl )
@ARGV
wiederfinden, Du kannst sie zum Beispiel mit
Code: (dl )
my $param = shift @ARGV;
in einer Schleife sukzessive durchgehen. Noch bequemer geht es mit verschiedensten CPAN:Getopt-Lösungen.

Beim Dateien öffnen hilft Dir das bereits erwähnte Tutorial perlintro, weiter geht es mit dem Tutorial perlopentut.

Allerdings sieht es so aus, daß wenn confixx (was auch immer das ist) etwas falsch macht, dort angesetzt werden sollte, die Fehlerursache zu beheben und nicht die Symptome zu behandeln.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
format_c
 2003-10-14 17:39
#63355 #63355
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Um den Usernamen heraus zu bekommen bietet perl mitunter folgendeFunktionen:
Code: (dl )
1
2
3
4
5
6
7
               $uid   = getpwnam($name);
$name = getpwuid($num);
$name = getpwent();
$gid = getgrnam($name);
$name = getgrgid($num;
$name = getgrent();
#etc.

Inperldoc perlfunc zu finden.

Gruß ALex
Relais
 2003-10-14 18:22
#63356 #63356
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
oder die Variablen (siehe perlvar) dafür verwenden.

$< # real uid of this process.
$> # effective uid of this process.
$( # real gid of this process.
$) # effective gid of this process.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
-=$4$UK!=-
 2003-10-14 18:44
#63357 #63357
User since
2003-10-14
3 Artikel
BenutzerIn
[default_avatar]
vielen dank,

mein problem hat sich gelöst, datei sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use Term::ReadKey
system("clear");
print 'username : ';
$username = readline(*STDIN);
chomp $username;


mkdir $username, 0777;
system('chown '.$username.' '.$username);

$fh = open(FILE,">>/var/spool/cron/root");
print FILE '* * * * * /usr/sbin/usermod -d /home/'.$username.' '.$username;
close($fh);


mfg

sasuki
betterworld
 2003-10-14 18:55
#63358 #63358
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
BTW: Was ist eigentlich die ``saved uid''? Die wird in man setuid erwaehnt, aber sonst hab ich noch nirgends etwas davon gehoert.
Strat
 2003-10-14 18:58
#63359 #63359
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Habe gerade mal eine "Einfuehrung in Perl" auf meine HP hochgeladen: http://www.fabiani.net/ -> Tips&Tricks -> Perl-Basics -> Einfuehrung in Perl
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 9 Einträge, 1 Seite



View all threads created 2003-10-14 16:57.