Voici le code de mon 1er script perl, le but de ce script est de faciliter la création d'un compte utilisateur, d'un dossier et d'un accès à ce fichier via samba sur un serveur de fichier (il me reste à ajouter la partie qui ira mettre à jour le fichier de configuration /etc/samba/smb.conf)
lorque le script veut executer la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 if ($#ARGV + 1 != 2) { print "Missing parameters...\nfirst : lastname\ntwice : firstname\n"; exit(1); } system("useradd -g DPMS -p $ARGV[1] $ARGV[0]") == 0 or die "cannot create linux user\n"; system("mkdir /fileserver/$ARGV[0]") == 0 or die "cannot create user folder\n"; system("cd /fileserver") == 0 or die "cannot access /fileserver\n"; system("chown $ARGV[0] $ARGV[0]") == 0 or die "cannot change onwer of folder\n"; system("smbpasswd -a $ARGV[0] $ARGV[1]") == 0 or die "cannot create samba user\n"; system("cd /home/olivier") == 0 or die "cannot access /home/olivier\n"; exit(0);
j'ai le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 system("cd /fileserver") == 0 or die "cannot access /fileserver\n";
le dossier /fileserver existe car la ligne suivante s'execute sans problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Can't exec "cd": Aucun fichier ou répertoire de ce type at /home/olivier/create_account.pl line 15. cannot access /fileserver
remarque : le dossier '/fileserver' existe avant le lancement du script
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 system("mkdir /fileserver/$ARGV[0]") == 0 or die "cannot create user folder\n";
je developpe mon script sous linux Red Hat 9.0
Merci d'avance pour votre coup de main !
Partager