Esegui script come utente diverso da root [chiuso]


11

Da utente root, come posso autorizzare un altro utente ad eseguire il file /root/script.sh?

L'idea è di eseguire lo script come sudo -u user1 /root/script.sh


1
La domanda non è completamente chiara: "sei root e vuoi eseguire lo script come user1" o "sei user1 e vuoi eseguire lo script come root"? Se il primo è il caso, qual è il problema con il sudocomando che hai scritto?
michas,

Scoprisu(1)
vonbrand

Risposte:


11

Devo dire che non mi è mai piaciuto sudo(soprattutto le sue configurazioni). Semplice vecchio su:

su -c 'command' - user

Eseguito da root, non richiederà la password.


0

L'utente deve avere

  1. eseguire l'autorizzazione per l'intero percorso della directory ( /rootsolo qui )

  2. eseguire l'autorizzazione per il file

  3. autorizzazione di lettura per il file

Potrebbe essere una buona idea lasciare /rootintatta e creare (o utilizzare) una directory diversa per questo scopo (ad es /usr/local/bin.). È possibile rendere user1l'unico utente a cui è consentito eseguire lo script rendendolo il proprietario del file o lasciare rootcome proprietario e gruppo, impostare le autorizzazioni di accesso semplice ( chmod) su 770e aggiungere user1con ACL ( setfacl).


0

Se lo script si trova nella directory principale, quindi

$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar  5 20:14 /root

user1 può essere solo root.

La tua /etc/sudoersvoce sarà simile

Cmnd_Alias SCRIPT=/root/script.sh

# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT

Normalmente si modifica il file con visudo

Inoltre, non è necessario -u rooteseguire il sudocomando.

La %intende il gruppo di utenti. Quando lo lasci fuori, solo l'utente può eseguire il comando. Se vuoi che un gruppo di utenti lo esegua, lascialo com'è.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.