Spegnere NAS con utente non root tramite script o batch

Language plugins e scripts (Java, Node.js, Pearl, PHP, Python, Ruby, ?sh)
Valle75
Utente
Utente
Messaggi: 22
Iscritto il: lunedì 31 agosto 2015, 11:47

Spegnere NAS con utente non root tramite script o batch

Messaggio da Valle75 »

Buongiorno a tutti.
Ho questa necessità che , nonostante aver letto molte soluzioni proposte,sono arrivato molto vicino all'obbiettivo, ma mi mancano gli ultimi dettagli per completare l'operazione.
La mia necessità , che credo probabilmente interessante anche per altri utenti, è comandare lo spegnimento del NAS al termine del backup (es. con Veeam), ma usando un utente "standard" e abilitato comunque solo ed esclusivamente a fare questo spegnimento del nas, spegnimento "dolce" previo arresto di tutti i servizi del nas.
Ho quindi creato l'utente "yourspecialuser" sul nas e , accedendovi con Putty in SSL, riesco a fare lo spegnimento, ma purtroppo, quando digito il comando
sudo -i
per alzare i privilegi e rendere quindi utilizzabile il comando di SHUTDOWN, mi chiede di digitare la password, quindi non posso usarla all'interno di una command line.
Cercando soluzioni , l'unica che mi ha portato vicino all'obbiettivo , è stata di modificare il file

/etc/sudoers e aggiungere la stringa

yourspecialuser ALL = NOPASSWD: ALL

In questo modo non chiede piu' la password e il batch funziona correttamente, poi lanciandolo con il comando "PLINK.EXE", ma in questo modo pero' questo utente che voglio assegnare solo allo spegnimento, cosi' è a tutti gli effetti un utente ROOT, quindi puo' fare tutti i danni che vuole (dato che poi nel comando PLINK devo mettere in chiaro la sua password di accesso).
Mi servirebbe quindi che la configurazione ultima qui sopra nel file /etc/sudoers , permettesse di abilitare l'accesso solo al comando di SHUTDOWN con privilegi elevati, ma provando a usare la stringa modificata qui sotto, non funziona e mi da errore di mancati privilegi.

yourspecialuser ALL = NOPASSWD: /sbin/shutdown

Come si deve cambiare questa stringa per abilitare solo lo spegnimento??
Oppure ci sono altre soluzioni che permettano di risolvere quanto a me necessario, ribadisco usando pero' un utente limitato?

Poi risolto questo, mi servirebbe sapere come poter fermare in modo corretto tutti i servizi del Synology in modo da fare uno spegnimento "dolce", come quello fattibile dall'interno del DSM.

Grazie a tutti!
Grazie mille, Valerio.

  • UPS: APC Smart 3000VA
  • GTW: Cisco 1841 ISP: [ADSL] Telecom 20 MB/s IP:[Static]
  • NAS: DS414+ DSM 6.2.2-24922 Update 4 ; DS418 DSM 6.2.2-24922 Update 4 ; DS412 DSM 6.2.2-24922 Update 4
  • CLI: Windows 10 Professional
burghy86
Moderatore
Moderatore
Messaggi: 11357
Iscritto il: martedì 11 settembre 2012, 18:59

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da burghy86 »

Ma scusami una volta visto che il veeam finisce il.backup standard dopo 2 ore dal processo.
Presupponendo che il veeam fa il backup alle 23
Impostare da dsm che il nas si spenga alle 00.30 e si riaccenda alle 22.30

In più con i processori intel oramai uso active backup for business e fa tutto lui il backup
NUOVO CANALE DISCORD
PARTECIPATE NUMEROSI:

https://discord.gg/McP3d4m2pG



Passare dalla sezione presentazioni e leggere il regolamento firma obbligatorio

siamo una community, aiutateci a sentirci parte di qualcosa e non un helpdesk
Non do aiuto in privato ma sul forum a tutti!!
Un grazie ci spinge a lavorare meglio
------------------------------------------------------------
  • UPS: apc
  • GTW: fritzbox o TP-LINK TD-W8970 ISP: [ADSL] intred(20000/1024/0) IP:[pubblico]
  • SWC: hp gigabit 8 porte with poe
  • NAS: ds213, ds213j, ds415+ 720+ dmv dal 6.2 alla 7. qnap ts212p ts22, all hd con wdred/ironwolf da 2/6tb
  • CLI: win 10, win11 e ubuntu
    [altro]
  • 3 smartphone android, lettore bd with allshare samsung, vodafone tv, raspberry p2 e p3
Valle75
Utente
Utente
Messaggi: 22
Iscritto il: lunedì 31 agosto 2015, 11:47

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da Valle75 »

Grazie per la risposta.
Già adesso faccio cosi', ma dato che non vorrei tenere acceso il NAS dei backup principale inutilmente e , dato che la dimensione dei backup e delle attività sul NAS di VEEAM non sono sempre cosi' temporaneamente rigide a livello di orario, con questa soluzione mi svincolo da qualunque possibile preimpostazione di spegnimento che puo' risultare o inutilmente lunga o addirittura prematura.
Grazie mille, Valerio.

  • UPS: APC Smart 3000VA
  • GTW: Cisco 1841 ISP: [ADSL] Telecom 20 MB/s IP:[Static]
  • NAS: DS414+ DSM 6.2.2-24922 Update 4 ; DS418 DSM 6.2.2-24922 Update 4 ; DS412 DSM 6.2.2-24922 Update 4
  • CLI: Windows 10 Professional
burghy86
Moderatore
Moderatore
Messaggi: 11357
Iscritto il: martedì 11 settembre 2012, 18:59

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da burghy86 »

Bo. Un nas è fatto per stare acceso per 24h. Ma capisco di tenerlo offline se lo usi come backup. Allarga la forbice. Fai una media. Veeam ci mette di solito 2/3 ore di media. Metti il riavvio per quella finestra. Sinceramente non mi vado a modificare ssh per questa cosa
NUOVO CANALE DISCORD
PARTECIPATE NUMEROSI:

https://discord.gg/McP3d4m2pG



Passare dalla sezione presentazioni e leggere il regolamento firma obbligatorio

siamo una community, aiutateci a sentirci parte di qualcosa e non un helpdesk
Non do aiuto in privato ma sul forum a tutti!!
Un grazie ci spinge a lavorare meglio
------------------------------------------------------------
  • UPS: apc
  • GTW: fritzbox o TP-LINK TD-W8970 ISP: [ADSL] intred(20000/1024/0) IP:[pubblico]
  • SWC: hp gigabit 8 porte with poe
  • NAS: ds213, ds213j, ds415+ 720+ dmv dal 6.2 alla 7. qnap ts212p ts22, all hd con wdred/ironwolf da 2/6tb
  • CLI: win 10, win11 e ubuntu
    [altro]
  • 3 smartphone android, lettore bd with allshare samsung, vodafone tv, raspberry p2 e p3
llac
Utente
Utente
Messaggi: 113
Iscritto il: mercoledì 8 giugno 2016, 0:31

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da llac »

Premesso che per uso il metodo descritto da burghy86 .. probabilmente userei Python che dovrebbe essere è già installato sul tuo nas.

Riferimenti :
https://stackoverflow.com/questions/230 ... ing-python
https://stackoverflow.com/questions/130 ... hon-script

se vuoi archiviare la password in modo criptato sul server in file puoi vedere
https://pypi.org/project/pycrypto/

non sono cintura nera di Python ma con un po di pazienza e un po di "googolate" è possibile farsi degli script interessanti.

Spero di averti aiutato.
Ciao
Luca
  • UPS APC BE325-IT / PowerWalker VI1000STL
  • GTW: Avm Fritz box 4040 ISP: FTTH IP:Shared
  • SWC: Zyxel Switch Unmanaged, 24 porte Gigabit / AVM FRITZ!WLAN Repeater 3000 / Avm FRITZ!WLAN REPEATER 1200 / SWC vari Tp-link Netgear
  • NAS: DS116 ,DS120j :( , Buffalo LinkStation LS-XL (1TB)
  • DSM: > 6.0
  • CLI: Windows
  • EXP: E[5] - NET[4] PC:W[7],M[0],L[4]
Avatar utente
dMajo
Moderatore
Moderatore
Messaggi: 1962
Iscritto il: sabato 18 agosto 2012, 23:14
Località: FVG - Italia

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da dMajo »

Lo scedulatore del DSM è in grado di eseguire uno script con dentro il commando shutdown da root

Un workaround potrebbe essere quello di testare per la presenza di un file una specifica cartella. Se trovato lo script sul NAS prima cancella il file e poi esegue lo shutdown. La cartella potrebbe avere accesso al solo utente yourspecialuser e a backup finito è sufficiente copiare il/un file con nome predefinito nella cartella specifica.
Lo script sul NAS può esser schedulato es ogni minuto.
Dal 01.01.2015 non rispondo a quesiti tecnici dei non osservanti il regolamento https://www.synologyitalia.com/presentazioni/regolamento-leggere-prima-di-postare-t5062.html

  • UPS: APC SMT2200I+AP9631
  • GTW: Vigor2866Vac(4.4.2): 2StaticIP FTTH(1/.1G)+FTTC(30/3M) :o
  • SWC: Netgear GS728TPv2(PoE+)
    • 4x HP NJ2000G
    • 2x Netgear GS108Tv2
    • 2x VigorAP902
  • NAS: DS1819+: DSM6.2.4(u7),32GB; C(2x845DCPro),R5(3xST6000VN001),R0(2xWD60PURX),VB(WD60EFRX);LAN:LAG(1+2),3,4 :D
    • DS1815+: DSM6.2.4(u7),16GB; R5(3xWD60EFRX),VB(2xWD60EFRX);LAN:LAG(1+2),3
    • RS3617xs+: DSM6.2.4(u7),8GB; R6(8xWD40FFWX),HS(WD40FFWX);LAN:LAG(1+2+3),4,LAG(5+6)
    • DS1513+(4GB); DS115j
  • ALTRO: Denon AVR-4311
    • UE55ES8000Q, UE32ES6800Q, UE22F5410AY
    • Galaxy Note8, A5, TabS3; Nokia N8
  • EXP: E5: NET9 PC:W9,M0,L6

www.alldataee.com
Valle75
Utente
Utente
Messaggi: 22
Iscritto il: lunedì 31 agosto 2015, 11:47

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da Valle75 »

Grazie a tutti per la risposta .

Il Workaround di dMajo è molto interessante e assolutamente utilizzabile, pena solo esporre in visibilità sullo script solo le credenziali dell'utente limitato che accederà alla cartella dove copiare il file DA VERIFICARE dal TAsk di spegnimento del NAS, ma soluzione molto valida.
Grazie mille!!
Grazie mille, Valerio.

  • UPS: APC Smart 3000VA
  • GTW: Cisco 1841 ISP: [ADSL] Telecom 20 MB/s IP:[Static]
  • NAS: DS414+ DSM 6.2.2-24922 Update 4 ; DS418 DSM 6.2.2-24922 Update 4 ; DS412 DSM 6.2.2-24922 Update 4
  • CLI: Windows 10 Professional
Avatar utente
dMajo
Moderatore
Moderatore
Messaggi: 1962
Iscritto il: sabato 18 agosto 2012, 23:14
Località: FVG - Italia

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da dMajo »

Valle75 ha scritto: lunedì 6 aprile 2020, 15:11... pena solo esporre in visibilità sullo script solo le credenziali dell'utente limitato ...
Puoi anche creare una nuova condivisione "nascosta dalla rete" con diritto in scrittura a tutti (pubblica) così non necessiti di nessuna psw, nessun utente.
Il PC (task di backup) deve così conoscere l'esatto percorso (es \\NAS\LaMiaCartella) dove copiare o creare un file con nome predefinito (es Spegniti.ora) che farà arrestare il NAS, dopo esser stato prima cancellato ovviamente.
Ovviamente così chiunque abbia accesso in SMB (o tramite file station) al NAS e conosca percorso e nome file può spegnere il NAS
Dal 01.01.2015 non rispondo a quesiti tecnici dei non osservanti il regolamento https://www.synologyitalia.com/presentazioni/regolamento-leggere-prima-di-postare-t5062.html

  • UPS: APC SMT2200I+AP9631
  • GTW: Vigor2866Vac(4.4.2): 2StaticIP FTTH(1/.1G)+FTTC(30/3M) :o
  • SWC: Netgear GS728TPv2(PoE+)
    • 4x HP NJ2000G
    • 2x Netgear GS108Tv2
    • 2x VigorAP902
  • NAS: DS1819+: DSM6.2.4(u7),32GB; C(2x845DCPro),R5(3xST6000VN001),R0(2xWD60PURX),VB(WD60EFRX);LAN:LAG(1+2),3,4 :D
    • DS1815+: DSM6.2.4(u7),16GB; R5(3xWD60EFRX),VB(2xWD60EFRX);LAN:LAG(1+2),3
    • RS3617xs+: DSM6.2.4(u7),8GB; R6(8xWD40FFWX),HS(WD40FFWX);LAN:LAG(1+2+3),4,LAG(5+6)
    • DS1513+(4GB); DS115j
  • ALTRO: Denon AVR-4311
    • UE55ES8000Q, UE32ES6800Q, UE22F5410AY
    • Galaxy Note8, A5, TabS3; Nokia N8
  • EXP: E5: NET9 PC:W9,M0,L6

www.alldataee.com
Valle75
Utente
Utente
Messaggi: 22
Iscritto il: lunedì 31 agosto 2015, 11:47

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da Valle75 »

dMajo ha scritto: domenica 5 aprile 2020, 3:15 Lo scedulatore del DSM è in grado di eseguire uno script con dentro il commando shutdown da root

Un workaround potrebbe essere quello di testare per la presenza di un file una specifica cartella. Se trovato lo script sul NAS prima cancella il file e poi esegue lo shutdown. La cartella potrebbe avere accesso al solo utente yourspecialuser e a backup finito è sufficiente copiare il/un file con nome predefinito nella cartella specifica.
Lo script sul NAS può esser schedulato es ogni minuto.

Ho provato ad usare questa funzionalità, eseguita come utente "root", che ogni x minuti esegue uno script che controlla la presenza di un file, e quando questo file non viene piu' trovato, lancia lo shutdown del NAS, ma purtroppo continua a darmi l'errore di Shutdown non permesso, per mancanza privilegi (nonostante il TASK del NAS riporta che viene eseguito come utente root).
Questo è il mio script:

if [ -f /volumeUSB1/usbshare/test-spegnimento.txt ];
then echo "Il file esiste! ";
else shutdown -P ;
fi

Non capisco perchè.
Grazie.
Grazie mille, Valerio.

  • UPS: APC Smart 3000VA
  • GTW: Cisco 1841 ISP: [ADSL] Telecom 20 MB/s IP:[Static]
  • NAS: DS414+ DSM 6.2.2-24922 Update 4 ; DS418 DSM 6.2.2-24922 Update 4 ; DS412 DSM 6.2.2-24922 Update 4
  • CLI: Windows 10 Professional
Avatar utente
dMajo
Moderatore
Moderatore
Messaggi: 1962
Iscritto il: sabato 18 agosto 2012, 23:14
Località: FVG - Italia

Re: Spegnere NAS con utente non root tramite script o batch

Messaggio da dMajo »

Lo shutdown sinceramente non l'ho usato ....
... ma uso diversi script che richiedono diritti root per esser schedulati (come lo smontaggio del disco usb), così:

Codice: Seleziona tutto

sh  /volume1/@appstore/MSHUtils/scripts/TestScript.sh
con utente root, e ovviamente allo script vanno concessi i diritti di esecuzione (io lo faccio via telnet o con webmin)

Hai provato anche da un volume interno? Non vorrei che da USB (fat) non vengano impostati correttamente gli attributi di esecuzione linux.

Ora ho tutti i nas 'muletto' impegnati in test .... eventualmente quando mi si liberano provo
Dal 01.01.2015 non rispondo a quesiti tecnici dei non osservanti il regolamento https://www.synologyitalia.com/presentazioni/regolamento-leggere-prima-di-postare-t5062.html

  • UPS: APC SMT2200I+AP9631
  • GTW: Vigor2866Vac(4.4.2): 2StaticIP FTTH(1/.1G)+FTTC(30/3M) :o
  • SWC: Netgear GS728TPv2(PoE+)
    • 4x HP NJ2000G
    • 2x Netgear GS108Tv2
    • 2x VigorAP902
  • NAS: DS1819+: DSM6.2.4(u7),32GB; C(2x845DCPro),R5(3xST6000VN001),R0(2xWD60PURX),VB(WD60EFRX);LAN:LAG(1+2),3,4 :D
    • DS1815+: DSM6.2.4(u7),16GB; R5(3xWD60EFRX),VB(2xWD60EFRX);LAN:LAG(1+2),3
    • RS3617xs+: DSM6.2.4(u7),8GB; R6(8xWD40FFWX),HS(WD40FFWX);LAN:LAG(1+2+3),4,LAG(5+6)
    • DS1513+(4GB); DS115j
  • ALTRO: Denon AVR-4311
    • UE55ES8000Q, UE32ES6800Q, UE22F5410AY
    • Galaxy Note8, A5, TabS3; Nokia N8
  • EXP: E5: NET9 PC:W9,M0,L6

www.alldataee.com
Rispondi

Torna a “Language plugins e scripts (Java, Node.js, Pearl, PHP, Python, Ruby, ?sh)”