J'ai préféré en faire un topic séparé plutôt que le noyer au milieu des 100+ pages du topic sur l'Oppo 103-105, qui va encore bien grossir. Les modos, si vous estimez que ce topic serait plus à sa place ailleurs, faites vous plaisir.
Entrons dans le vif du sujet. Pour ce tuto, je vais utiliser putty pour me connecter au Nas et faire les manips. Il est possible d'utiliser autre chose, la démarche et les commandes restent identiques une fois connecté.
Connectez vous au Nas en tant que root.
Dans un premier temps, nous allons créer le fichier script qui va modifier le fichier de config de Samba. Vous pouvez mettre ce script ou vous voulez, je vous conseille tout de même de le mettre dans un dossier différent de celui des fichiers d'initialisation de samba (ne vous inquiétez pas, on reparlera de ce dossier plus loin). En effet, le dossier contenant les fichiers d'initialisation est remis par défaut à chaque mise à jour du Nas. Tout ce qui est modifié dans ce dossier est donc à refaire. Autant en avoir le moins possible à refaire

Passons aux choses sérieuses. Nous allons créer le fichier du script.
Pour cela, mettez vous dans le dossier ou vous voulez créer le script en tapant cd chemindudossier (dans mon cas cd /volume1).
Tapez vi nomduscript.pl (dans mon cas vi scriptSortSamba2.pl)
Attention à ce que vous allez faire au clavier ensuite, vi étant un peu particulier

Appuyez sur la touche i pour passer en mode insertion.
Collez le texte du script ou tapez le.
Code: Select all
#!/usr/bin/perl
#
# Modify the smb.conf file on the Synology disk station
#
# Location of the smb.conf and temp files
$smb_file = "/usr/syno/etc/smb.conf";
$tmp_file = "/tmp/mod_smb_cfg.$$";
# Below are the names of the shares and to the right
# are the config lines to introduce
%share_config =
(
'music' => [
"vfs objects = dirsort"
],
'photo' => [
"vfs objects = dirsort"
],
'video' => [
"vfs objects = dirsort"
]
);
# Read the old config, make changes, writing to a temp file
open(SMBFILE, " $smb_file") || die "erreeur";
open(TMPFILE, "> $tmp_file")|| die "erreur";
while(<SMBFILE>)
{
# Change configuration lines specified in "replacements"
$tline = $line = $_;
chomp($tline);
$tline =~ s/^[\t ]*//;
print TMPFILE;
# Add configuration lines as specified in "share_config"
$section_name = $_;
chomp($section_name = $_);
$section_name =~ s/^\[//;
$section_name =~ s/\].*//;
foreach $line ( @{ $share_config{"$section_name"} } )
{
print $line;
print TMPFILE "\t$line\n";
print $line;
}
}
close(SMBFILE);
close(TMPFILE);
# Read the temp file in and replace the original config file
open(TMPFILE, "< $tmp_file") || exit;
open(SMBFILE, "> $smb_file") || exit;
while(<TMPFILE>)
{
print SMBFILE;
}
close(TMPFILE);
close(SMBFILE);
# Get rid of the temp file
unlink($tmp_file);
Puis tapez ZZ (en majuscule !) (pour quitter vi et sauvegardes les modifs dans le fichier)
Voilà, on est sorti de vi et le fichier script est créé.
L'encadré rouge, ce sont les dossiers par défaut du nas. Si vous en avez d'autres à trier, il suffit de rajouter le nom du dossier et la ligne qui va avec, à la suite de video, avant les caractères );
Par exemple si on a un dossier dossier à trier (oui je sais, original comme nom :rofl: ) il suffira de rajouter la ligne comme les autres 'dossier' => ["vfs objects = dirsort"]
Pensez aussi dans le cas d'un rajout, à mettre la virgule après le ] de la ligne concernant le dossier video
Maintenant que le script est fait, passons à la deuxième étape, qui consiste à créer le fichier d'initialisation qui va permettre de lancer le script au démarrage du Nas.
Les fichiers permettant d'initialiser le serveur Samba se trouvent dans le dossier /usr/syno/etc/rc.d. On va donc aller se placer dans ce dossier. Pour cela tapez cd /usr/syno/etc/rc.d
Ensuite si l'on tape ls, vous devriez obtenir quelque chose comme ça (sans le rectangle rouge, c'est moi qui l'ai rajouté ça): Le fichier nous intéressant est le fichier S80samba.sh. C'est à partir de ce fichier que se lance le serveur samba au démarrage. Le but du jeu va donc être de créer un fichier qui va se situer avant (dans mon cas j'ai crée S80alt_samba.sh) qui sera lancé en premier. Il va lancer le script modifiant le fichier config samba pour que le serveur s'initialise ensuite avec le fichier config modifié comme on le souhaite.
Pour cela, tapez vi nomdufichier.sh (dans mon exemple, j'ai tapé vi S80alt_samba.sh (S majuscule))
Faites encore attention à ce que vous allez taper au clavier, vi étant toujours le même lol.
Appuyez sur la touche i pour passer en mode insertion.
Rentrez la première ligne #!/bin/sh
La deuxième ligne est un petit peu plus complexe, mais pas de beaucoup, rassurez vous. Il s'agit d'indiquer le chemin du script à lancer.
Entrez donc perl cheminduscript (dans mon cas perl /volume1/scriptSortSamba2.pl).
Appuyez ensuite sur Echap
Puis ZZ (toujours en maj !)
Voilà, normalement il ne devrait pas y avoir de soucis de droit d'exécution, ça devrait fonctionner. Si toutefois ça ne marche pas, n'hésitez pas à me contacter par mp. Si il y a des passages qui ne sont pas clairs, ou que ça manque de captures ou n'importe quoi d'autre, n'hésitez pas à m'en faire part.