Plesk per Linux offre ai clienti la capacità di creare attività pianificate che eseguano comandi sul server. Dalla shell in uso dipendono le aree del file system a cui hanno accesso le attività pianificate. Per impostazione predefinita, l’accesso è limitato allo spazio web del cliente. Tuttavia, l’amministratore di Plesk può modificare tale impostazione.

Nota: se non hai dimestichezza con il concetto di shell, ti suggeriamo di informarti meglio prima di modificare le impostazioni descritte in questo argomento.

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 e 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», accedi a Strumenti e impostazioni > Attività pianificate > Impostazioni e seleziona la shell che preferisci nel menu.

image 78099

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 bypassare questa impostazione per i propri abbonamenti selezionando un’altra shell in Siti web e domini > Accesso a hosting web.

Impostare una shell personalizzata per un abbonamento singolo

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

  1. Accedi ad Abbonamenti, fai clic sull’abbonamento desiderato, quindi su Accesso a hosting web.
  2. Seleziona la shell desiderata nel menu «Accesso al server tramite SSH» e fai clic su Ok.

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 Ok.

In questo modo il cliente potrà selezionare una shell diversa in Siti web e domini > Accesso a hosting web. 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 utente dell’utente di sistema dell’abbonamento. Accedi ad Abbonamenti, fai clic sull’abbonamento desiderato, quindi su Accesso a hosting web e 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