Riassunto: È possibile offrire ai clienti la possibilità di creare attività pianificate che eseguano comandi sul server. In Plesk per Linux, la shell in uso determina le aree del file system destinate alle attività pianificate. Per impostazione predefinita, l’accesso è limitato allo spazio web del cliente. Tuttavia, l’amministratore di Plesk può modificare tale impostazione.

In questa sezione, imparerai a impostare una shell predefinita per le attività pianificate, impostare una shell personalizzata per un abbonamento individuale e consentire a un cliente di impostare una shell personalizzata per il proprio abbonamento. Inoltre, verrà illustrato il metodo per impedire ai clienti di utilizzare le attività pianificate «Esegui un comando».

Nota: se non hai dimestichezza con le shell di Linux, ti suggeriamo di informarti meglio prima di modificare le impostazioni descritte in questa sezione.

Quale shell viene utilizzata per l’esecuzione di attività pianificate?

La shell utilizzata per le attività pianificate «Esegui un comando» dipende dall’utente di sistema dell’abbonamento (ovvero, tutte le attività pianificate create in un abbonamento condividono la stessa shell). Per impostazione predefinita, corrisponde alla shell predefinita configurata nelle impostazioni del server e utilizzata per tutti gli abbonamenti del server. Tuttavia, esistono due eccezioni alla regola:

In entrambi i casi, le attività pianificate «Esegui un comando» create nell’ambito dell’abbonamento utilizzano la shell personalizzata, anziché quella predefinita.

Perché utilizzare una shell diversa?

Per impostazione predefinita, la shell «/bin/bash (chrooted)» è configurata come predefinita per le attività pianificate. In questo modo, i comandi eseguiti dalle attività pianificate possono accedere solo ai file contenuti nello spazio web associato all’abbonamento. Si tratta di un’importante misura di sicurezza, che garantisce che i clienti non possano utilizzare attività pianificate per interrompere il funzionamento del server o accedere ai file appartenenti all’amministratore di Plesk o ad altri clienti.

Nota: Questa impostazione influisce su tutti gli abbonamenti del server, inclusi quelli di proprietà dell’amministratore di Plesk. Non influisce sulle attività pianificate create dall’amministratore di Plesk in Strumenti e impostazioni > Attività pianificate (processi cronologici) (in «Strumenti e Risorse»), configurate per l’esecuzione con l’utente root.

Il motivo principale per cui può essere opportuno modificare la shell predefinita per le attività pianificate è fornire a tutti, sul server, la capacità di eseguire comandi tramite attività pianificate che abbiano accesso all’intero file system del server.

Se non condividi il server con altri, o se ritieni gli altri tenant affidabili, puoi selezionare una shell non chrooted per le attività pianificate. Se desideri utilizzare una shell non chrooted per le attività pianificate, ma non sei sicuro di quale scegliere, seleziona «/bin/bash».

Su un server di hosting condiviso, si consiglia di lasciare la shell predefinita per le attività pianificate impostata su «/bin/bash (chrooted)». Se un cliente richiede una shell non chrooted per le proprie attività pianificate, puoi concederla in base ai singoli abbonamenti.

Avvertimento: se si permette a un cliente di accedere a una shell diversa da «/bin/bash (chrooted)», il cliente potrà eseguire file binari e accedere a file e dati che non gli appartengono. Ciò rappresenta un rischio per la sicurezza e può condurre alla compromissione del server.

Impostare la shell predefinita per le attività pianificate

Se desideri impostare la shell da utilizzare come predefinita per l’esecuzione di tutte le attività pianificate «Esegui un comando», apri Strumenti e impostazioni > Attività pianificate (processi cronologici) (in «Strumenti e Risorse») > Impostazioni e seleziona la shell che preferisci nel menu.

image select shell

In alternativa, puoi accedere al server tramite ssh ed eseguire questo comando:

plesk bin server_pref -u -crontab-secure-shell "<shell>"

Dove <shell> è la shell desiderata. Ad esempio:

plesk bin server_pref -u -crontab-secure-shell "/bin/bash"

Impedire l’uso di attività pianificate «Esegui un comando»

Se ritieni che un cliente abbia creato un’attività pianificata che potrebbe eseguire operazioni nocive sul server (ad esempio, inviare spam), durante le tue indagini puoi disattivare tutte le attività pianificate «Esegui un comando».

Accedi al server Plesk tramite ssh ed esegui questo comando:

plesk bin server_pref -u -crontab-secure-shell "/bin/false"

per impostare la shell predefinita per le attività pianificate su «/bin/false». In questo modo si impedisce il funzionamento di tutte le attività pianificate «Esegui un comando» create dai clienti.

Nota: I clienti autorizzati a selezionare una shell diversa possono saltare questa impostazione per i propri abbonamenti selezionando un’altra shell.

Impostare una shell personalizzata per un abbonamento singolo

Per impostare una shell personalizzata per un abbonamento singolo, procedi come segue:

  1. Apri Abbonamenti e fai clic sull’abbonamento desiderato, quindi apri la scheda «Hosting e DNS» e fai clic su Hosting.
  2. Seleziona la shell desiderata dal menu «Accesso SSH» e fai clic su Salva.

Tutte le attività pianificate «Esegui un comando» per questo abbonamento utilizzeranno la shell selezionata.

Consentire a un cliente di impostare una shell personalizzata per il proprio abbonamento

Per consentire a un cliente di impostare una shell personalizzata per uno dei propri abbonamenti, procedi come segue:

  1. Accedi ad Abbonamenti, fai clic sull’abbonamento desiderato, quindi su Personalizza.
  2. Nella scheda «Autorizzazioni», seleziona le caselle di controllo «Gestione delle impostazioni di hosting» e «Configurazione di opzioni di scripting web potenzialmente non affidabili che sovrascrivono le norme sul provider», quindi fai clic su Aggiornamento & Blocco.

In questo modo il cliente potrà selezionare una shell diversa in Siti Web e Domini > scheda Hosting e DNS > Hosting. Se lo farà, tutte le attività pianificate «Esegui un comando» per il proprio abbonamento utilizzeranno la shell selezionata.

Individuare quale shell viene utilizzata da un abbonamento

Per individuare la shell utilizzata per le attività pianificate «Esegui un comando» di un abbonamento, procedi come segue:

  1. Cerca il nome dell’utente che usufruisce del sistema dell’abbonamento. Apri Abbonamenti e fai clic sull’abbonamento desiderato, quindi apri la scheda «Hosting e DNS» e fai clic su Hosting. Infine, cerca il campo «Nome utente».
  2. Accedi al server Plesk tramite ssh ed esegui questo comando:
crontab -u <system user name> -l | grep SHELL