Merci Jibé, je me sens moins seul !!!!!
Bref, vous avez sans doute compris que ce truc m'agace un peu prodigieusement
- c'est comme çà qu'on fait avancer le Schmilblick !
Il y avait un truc qui me gênait dans la conf précédente, c'est que tout nouvel ajouté dans le groupe de l'I-bay avait par défaut le droit lecture et écriture, il fallait une action spécifique pour le passer en lecture seule.
J'ai donc commis une templatisation qui va dans l'autre sens :
Sans paramètre spécifique ajouté à l'Ibay (ou avec ce paramètre vide), le comportement est classique.
En ajoutant un paramètre WriteList à l'ibay, seuls les users ou les groupes précisés pourront écrire, les autre ne pourront que lire.
Voici le template à créer, en le nommant forcément 20writable dans le dossier /etc/e-smith/templates-custom/etc/smb.conf/ibays/
On fait cela ainsi :
- Code : Tout sélectionner
mkdir -p /etc/e-smith/templates-custom/etc/smb.conf/ibays/
vi (remplacer vi par votre éditeur favori) /etc/e-smith/templates-custom/etc/smb.conf/ibays/20writable
Et là, copier coller de ceci :
- Code : Tout sélectionner
{
# heavily modified by PS to include the avaliability
# to modulate RO and RW access on a single ibay
# the key is to set the ibay as SAMBA writable = no,
# then to use the samba 'write list' funct to
# set the users and groups allowed to write
# Ver 0.1 PS 2012-04-29
if ( ($ibay->prop('WriteList') || '') ne '') {
my @accs = split (/,/, $ibay->prop('WriteList'));
# admin ever has the write access
my $write = "admin";
use esmith::AccountsDB;
my $accounts = esmith::AccountsDB->open_ro;
my $comment = '';
foreach my $acc (@accs) {
my $account = $accounts->get($acc);
if ( $account ) {
my $tpe = $account->prop('type');
if ( $tpe eq 'user' ) { $write .= ", $acc" }
elsif ( $tpe eq 'group' ) { $write .= ", \@$acc" }
else { $comment .= "# $acc type $tpe not allowed "; }
}
else {
$comment .= "# $acc not in accounts DB ";
}
}
$OUT .= "writable = no\n";
$OUT .= "$comment\n";
$OUT .= "write list = $write\n";
}
else {
$OUT .= "writable = yes\n";
}
}
Ce changement n'est évidemment à réaliser qu'une seule fois !
Après, pour paramétrer une i-bay spécifique, il faut :
* D'abord la créer via le manager, en mode lecture groupe - écriture groupe
* bien penser à désactiver ftp et cgi (parce que sinon, je pense qu'on rentre dans un problème de droits)
en ligne de commande, en étant root
Si on souhaite sur l'ibay 'dossierspeciaux' autoriser uniquement le compte boss et le groupe flic a écrire, alors
- Code : Tout sélectionner
db accounts setprop dossierspeciaux WriteList boss,flic
Pour la prise en compte des changements :
- Code : Tout sélectionner
expand-template /etc/smb.conf
service smb restart
A prendre comme un bricolage de dimanche après-midi pluvieux, il doit rester quelques tests à faire !
A+,
Pascal