Pagina 1 di 1
Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 15:49
da pengu
Hei amiconi, ho bisogno che un comando destinato a root sia funzionante se lanciato anche da utente normale per fare in modo che un mio script possa essere avviato dall'utente. Come si assegna un comando come ad esempio "modprobe" (è solo un esempio) all'utente normale?
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 15:54
da Divilinux
ma se dentro lo script c'e' un "sudo" o un comando che puo' dare root..l'utente non lo puo' utilizzare..sebbene possa utilizzare lo script
all'interno dell script,al posto di sudo dovresti mettere kdesu o gksu.
es.
#!/bin/sh
sudo modprobe nvidia
non funziona se lo lanci da utente...dovresti mettere
gksu modprobe nvidia
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 15:57
da script
se lo script viene eseguito solo su un computer, una soluzione forse tra le meno eleganti è copiare il binario del comando da /sbin/ a /bin/ e settargli i permessi a dovere..in questo modo il comando risulta eseguibile a tutti gli utenti
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 15:58
da pengu
No, io ho bisogno proprio di sapere come si assegna l'esecuzione di un comando all'utente.
Esempio: se un utente non può eseguire il comando "modprobe", come si fa per fare in modo che la schell anziche' restituire "command non found" esegua il comando?
Qual'è la differenza fra la cartella "/bin" e "sbin" ::)
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 15:59
da Divilinux
@pengu
te l'ho scritto prima
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:00
da telperion
http://wiki.ubuntu-it.org/Sudo#autorizzazioni
fai uno user con le autorizzazioni sudo solo per i comandi che deve usare.
utente1,utente2 macchina1 = (utente2) NOPASSWD: /directory1/comando1, /directory2/, !/directory2/comando2
si consente a utente1 e utente2, se collegati sulla macchina1, la possibilità di eseguire il comando1 ed i comandi in /directory2, ma non /directory2/comando2 come utente2, senza richiedere la password.
Quindi
Codice: Seleziona tutto
autorizzato ALL = NOPASSWD: /sbin/modprobe, /directory1/comando1
dovrebbe funzionare
lo user
"autorizzato" può eseguire modprobe e /directory1/comando1 senza password
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:02
da pengu
io voglio scrivere nella shell semplicemente "modprobe" da utente normale, scusa ma il modprobe è solo un esempio, il fatto è che voglio fare in modo che l'utente normale possa digitare nella shell alcuni comandi al pari di root, capito?
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:08
da script
a quel che ne so io
/bin/ contiene i file binari dei comandi che possono eseguire tutti gli utenti
/sbin/ contiene i binari dei comandi che possono essere eseguiti solo da superuser (ecco perche il prefisso s)
quindi in teoria quello che ti ho detto io dovrebbe funzionare, ma attento a modificare i permessi dei file che sposti in /bin/
correggetemi se sbaglio...perche nonostante tutto a volte mi accorgo di essere molto piu niubbio di quello che credo
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:10
da pengu
Ok, grazie. Un'ultima cosa, siccome a volte uso anche debian che come sappiamo non ha il "sudo" attivato di default, per caso sapete come si fa senza il sudo a fare la stessa cosa?
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:10
da Divilinux
3..
il problema e' che se nello script c'e' un comando che solo root puo' eseguire..dove la metti la password?
infatti molti programmi,per delle funzioni particolari,richiedono di essere avviati da root..(come wlassistant ad esempio..o synaptic) perche' contengono codice o comandi che richiedono i privilegi di root
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:13
da telperion
pengu ha scritto:
Ok, grazie. Un'ultima cosa, siccome a volte uso anche debian che come sappiamo non ha il "sudo" attivato di default, per caso sapete come si fa senza il sudo a fare la stessa cosa?
Attivalo come ho fatto io.
poi
e aggiungi user e permessi
e consiglio su debian di aggiungere con visudo
che imposta a 5 minuti il timeout della passwd contro i 15 di default
A un'ultima cosa
con sudo la password da immettera è quella dell'utente stesso,
percui io l'opzione NOPASSWD per sicurezza non la userei.
Quando lo user lancia lo script verrà richiesto di immettere
la propria password, non mi sembra una grande scocciatura,
anzi sottolinea il fatto che si sta compiendo un'operazione
che è potenzialmente rischiosa per il sistema.
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:22
da script
ma non sarebbe piu semplice creare lo script ed eseguirlo da root? in questo modo lo script risulterebbe anche portabile...comunque con le distribuzioni non-ubuntu overo dove non è presente il comando sudo basta eseguire la shell, dare il comando su ed inserire la password di root, in questo modo diventi root a tutti gli effetti ed eseguire i comandi "amministrativi", poi per tornare all'utente precedente dare il comando exit...non conviene fare queste modifiche, uno dei punti di forza di linux è proprio la gestione degli utenti, cosa che lo rende molto sicuro
Re: Lanciare comando root da utente
Inviato: martedì 29 maggio 2007, 16:24
da telperion
script ha scritto:
ma non sarebbe piu semplice creare lo script ed eseguirlo da root? in questo modo lo script risulterebbe anche portabile...comunque con le distribuzioni non-ubuntu overo dove non è presente il comando sudo basta eseguire la shell, dare il comando su ed inserire la password di root, in questo modo diventi root a tutti gli effetti ed eseguire i comandi "amministrativi", poi per tornare all'utente precedente dare il comando exit...non conviene fare queste modifiche, uno dei punti di forza di linux è proprio la gestione degli utenti, cosa che lo rende molto sicuro
Tutte le distibuzioni hanno sudo
basta installarlo.
Io non FAREI MAI uno user root! MAI.
PS se l'operazione la fai tu, certo che puoi usare su ed exit.
Se devi autorizzare utenti invece niente di meglio che sudo,
facile e mirato.