In primis ringrazio NINIO che mi ha fatto accendere la lampadina. Il suggerimento password -l è valido per bloccare l'accesso verso il server via web. Il mio problema era bloccare l'accesso alle cartelle condivise per l'utente in questione, via samba (la condivisione delle cartelle per windows, ma anche per Linux).
Sino a ieri entravo nella GUI del QNAP (TS-439 PRO II) e cambiavo i permessi dell'utente.
Una gran bella seccatura.
Ora la condivisione delle cartelle del Qnap si basa sul SAMBA e di conseguenza del suo file smb.conf.
Tale file lo troviamo (nel mio caso, ma in generale lo troviamo in questa posizione) in
/mnt/HDA_ROOT/.config/smb.conf
Per ogni condivisione di cartella ci ritroviamo una cosa del genere
Codice: Seleziona tutto
[SHARE]
comment =
path = /share/HDD_DATA/SATA_4/Documenti
browsable = yes
oplocks = yes
ftp write only = no
public = yes
invalid users = "mario","guest"
read list = "paolo","luca","pietro"<------
write list = "admin","roberto"
valid users = "luca","admin","roberto","paolo","pietro"
inherit permissions = yes
recycle bin = no
Se ad una certa ora si vuole disabilitare l'utente PIETRO e LUCA all'accesso alla cartella condivisa "SHARE" si dovrà cambiare come segue
Codice: Seleziona tutto
[SHARE]
comment =
path = /share/HDD_DATA/SATA_4/Documenti
browsable = yes
oplocks = yes
ftp write only = no
public = yes
invalid users = "mario","guest","luca","pietro"<-----
read list = "paolo"
write list = "admin","roberto"
valid users = "luca","admin","roberto","paolo","pietro"
inherit permissions = yes
recycle bin = no
Come possiamo automatizzare il tutto?
Ho percorso questa soluzione, (sicuramente ci sono altri metodi più eleganti, ma per il momento questo e quello che mi è venuto in mente e sopratutto funziona), ho creato un file
smb.conf.si e un file
smb.conf.no nel primo gli utenti LUCA e PIETRO saranno abilitati e il secondo sono disabilitati.
Ora creiamo 2 script il primo lo chiameremo
utentesmb-no.sh
Codice: Seleziona tutto
#! /bin/sh
cp /mnt/HDA_ROOT/.config/smb.conf.no /mnt/HDA_ROOT/.config/smb.conf
/etc/init.d/smb.sh restart
Il secondo script lo chiameremo
utentesmb-si.sh
Codice: Seleziona tutto
#! /bin/sh
cp /mnt/HDA_ROOT/.config/smb.conf.si /mnt/HDA_ROOT/.config/smb.conf
/etc/init.d/smb.sh restart
In pratica copiamo il nostro smb.conf.no (per negare la condivisione ai nosti utenti) rinominandolo smb.conf e di conseguenza restartiamo il demone di Samba, e viceversa per abilitarli.
I due script li ho posizionati dentro /etc/init.d/ (utentesmb-no.sh e utentesmb-si.sh)
I file smb.conf.si e smb.conf.no li ho posizionati dentro /mnt/HDA_ROOT/.config/ in prtica dove si trova smb.conf.
Ora non ci rimane che schedulare l'avvio dei 2 script.
Per temporizzare l'esecuzione dei 2 script utilizziamo il
crontab.
Per semplicità ho editato con un editor il file posizionato in /mnt/HDA_ROOT/.config/crontab aggiungendo le seguenti righe
Codice: Seleziona tutto
# m h dom m dow cmd
0 4 * * * /sbin/hwclock -s
0 3 * * * /sbin/vs_refresh
0 3 * * * /sbin/clean_reset_pwd
0-59/15 * * * * /etc/init.d/nss2_dusg.sh
10 15 * * * /usr/bin/power_clean -c 2>/dev/null
0 3 * * 0 /etc/init.d/idmap.sh dump
30 7 * * * /sbin/clean_upload_file
45 2 * * * /etc/init.d/updatedb.sh crontab enable
0 3 * * * /bin/rm -rf /mnt/HDA_ROOT/twonkymedia/twonkymedia.db/cache/*
30 3 * * * /sbin/notice_log_tool -v -R
30 7 * * * /usr/local/sbin/version_cleaner -t 0 > /dev/null 2>/dev/null
0 0 * * * /usr/bin/qcloud_cli -c
0 22 * * * /etc/init.d/boysmb-no.sh<----------
0 8 * * * /etc/init.d/boysmb-si.sh<------------
4 3 * * 3 /etc/init.d/backup_conf.sh
In pratica alle 22 parte lo script che disabilita gli utenti e alle 8 li riabilita.
Una volta modificato il file crontab via shell eseguiamo
Codice: Seleziona tutto
crontab /etc/config/crontab
/etc/init.d/crond.sh restart
se eseguiamo crontab -l ci stamperà a video il contenuto del file crontab e dovremmo visualizzare il file modificato con le nostre 2 righe aggiunte.
Ricordo che i 2 script utentesmb-no.sh e utentesmb-si.sh vanno cambiati i permessi in 755 altrimenti non verranno eseguiti.
Spero di non aver dimenticato nulla, e che questa piccola guida possa servire a qualcuno.
A presto
Max