Pagina 1 di 1

sudo

Inviato: mer 20 apr 2005, 20:20
da moruz83
sono da poco riuscito a mettere l´adsl sotto slack e va una bomba.
<BR>ora.
<BR>vorrei collegarmi anche da user senza dover "switchare".
<BR>per altri comandi con sudo va tutto bene ma col comando aciadsl-start non va perche non essendo root non ho permessi per fare altre operazioni che il comando stesso richiede es. lspci (che non so a cosa serva visto che ho un modem usb ma sembra richiederlo)
<BR>se qualcuno ha avuto il mio stesso bisogno e ha risolto il problema o puo darmi una mano.... me la dia! :-)
<BR>ciaoz<br>

sudo

Inviato: mer 20 apr 2005, 20:34
da kyakan
Quando esegui con sudo tutto quello che viene eseguito dal programma viene eseguito come root, quindi non è un problema di permessi, il problema è il PATH.
<BR>Il PATH da utente non contiene /sbin /usr/sbin ... quindi credo ti basti cambiare il PATH, puoi provare da utente con:
<BR>
<BR>$ PATH=$PATH:/sbin sudo aciadsl-start
<BR>
<BR>dovrebbe funzionare ..
<BR>
<BR><br>

sudo

Inviato: mer 20 apr 2005, 21:38
da tommyblue
alternativamente (io l´ho usato per init per spegnere il pc da utente) imposta il SUID nei permessi del comando
<BR>
<BR>es:
<BR># chmod +s /sbin/init
<BR>
<BR>in questo modo il file vine lanciato come se a farlo fosse il proprietario dello stesso (in questo caso root)
<BR>ovviamente non è bene abusarne, non è il massimo in quanto a sicurezza
<BR>
<BR>ciao<br>

sudo

Inviato: mer 20 apr 2005, 21:46
da moruz83
il suid è una buona idea ma non ho capilo la storia del path...
<BR>io un /etc/sudores metto tutto il percorso completo infatti il programma parte ma da errori quando usa lspci come prima descritto...<br>

sudo

Inviato: mer 20 apr 2005, 23:25
da kyakan
Da root:
<BR># echo $PATH
<BR>/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/lib/java/bin:/usr/X11R6/bin
<BR>
<BR>Da utente pirla
<BR>$ echo $PATH
<BR>/usr/local/bin:/bin:/usr/bin:/usr/lib/java/bin:/usr/X11R6/bin
<BR>
<BR>Come vedi gli utenti non hanno (ovviamente) le varie sbin ...
<BR>
<BR>Ora quando in aciadsl-start viene invocato lspci viene invocato con il PATH da utente, quindi senza sbin...quindi non lo trova...
<BR>Da utente
<BR>
<BR>$ sudo echo $PATH
<BR>/usr/local/bin:/bin:/usr/bin:/usr/lib/java/bin:/usr/X11R6/bin
<BR>
<BR>come vedi il path è quello dell´utente e non quello di root
<BR>
<BR>Da qualche parte in aciadsl-start deve esserci qualcosa del tipo:
<BR>
<BR>...
<BR>spci ...
<BR>..
<BR>
<BR>probabilmente se lo cambi con
<BR>
<BR>....
<BR>/sbin/lspci ...
<BR>...
<BR>
<BR>forse funziona ...
<BR>
<BR>
<BR>
<BR>
<BR>
<BR><br>

sudo

Inviato: mer 20 apr 2005, 23:33
da moruz83
mm capisco...
<BR>e se mi aggiungo al gruppo sbin ... se c´è perche neanche mi ricordo..
<BR>
<BR>$ PATH=$PATH:/sbin sudo aciadsl-start
<BR>questo comandi che mi hai dato che fa precisamente?
<BR>prima di fare le cose volgio capire cosa fanno :-P <br>

sudo

Inviato: gio 21 apr 2005, 0:21
da tommyblue
$PATH è una variabile d´ambiente, qualunque programma può richiamarla
<BR>
<BR>ogni sessione (ovvero ogni volta che ti loggi nella bash) ha la sua $PATH (definita in vari modi)
<BR>
<BR>la variabile $PATH contiene una serie di percorsi (divisi da ´:´) in cui viene cercato un comando. cioè quando lanci:
<BR>$ls
<BR>la shell cerca il comando ls in tutti i percorsi specificati in $PATH, se lo trova lo esegue, altrimenti restituisce un errore
<BR>
<BR>la $PATH di root è diversa da quella di un utente, se te lanci un programma che normalmente girerebbe da root come utente, la $PATH usata è quella dell´utente
<BR>
<BR>probabilmente chi ha creato il programma che hai appena lanciato dà per scontato che la $PATH sia quella di root, quindi può essere che il programma tenti di eseguire una applicazione che però non viene trovata nella $PATH dell´utente, di conseguenza il programma dà errore e non funziona.
<BR>
<BR>il suggerimento di kyakan era si modificare la $PATH dell´utente rendendola uguale a quella di root in modo che il programma non dia l´errore che ti ho descritto
<BR>
<BR>prolisso ma, spero, esplicativo
<BR>ciao<br>

sudo

Inviato: gio 21 apr 2005, 0:24
da moruz83
quindi basta impartire il comando nella shell dell user e dovrebbe essere utto k?bash:
<BR>
<BR>ecco il mio path... non capisco l´ultimo errore
<BR>/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:/usr/lib/java/bin:/usr/lib/java/jre/bin:/opt/kde/bin:/usr/lib/qt/bin:/usr/share/texmf/bin:.: No such file or directory
<BR><br>

sudo

Inviato: gio 21 apr 2005, 0:30
da moruz83
dove sono salvati sti path??? su un file ?
<BR>ditemi il nome che c´e´ quel "." che mi da problemi.<br>

sudo

Inviato: gio 21 apr 2005, 0:32
da moruz83
anzi non è il punto... che sarò secondo voi?<br>

sudo

Inviato: gio 21 apr 2005, 1:04
da moruz83
ho provato sia a settare il suid che il path ma nulla....
<BR>qualchuno non si e mai posto il problema?
<BR>o tutti avete un modem ethernet?
<BR>ciaoz a tutti bnotte.<br>

sudo

Inviato: gio 21 apr 2005, 21:29
da moruz83
era un problema di path come dicevi tu ho aggiunto nel mio .bashrc e .bash_profile
<BR>
<BR>PATH=$PATH:/sbin:/usr/sbin:
<BR>
<BR>tutto k ora mi collego anche da user!
<BR>viva slacky<br>

sudo

Inviato: gio 21 apr 2005, 21:45
da tommyblue
e io che pensavo di essere stato chiaro...
<BR>
<BR>"sti path" non è da nessuna parte, è una variabile!
<BR>
<BR>il punto indica la directory corrente, quindi se sono in /bin è /bin, se sono in /etc è /etc eccetera..
<BR>
<BR>l´errore probabilmente dipende da com ehai richiamato la path, il comando corretto è:
<BR>echo $PATH<br>

sudo

Inviato: ven 22 apr 2005, 16:04
da moruz83
moreno@moruz:~$ echo $PATH
<BR>/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:/usr/lib/java/bin:/usr/lib/java/jre/bin:/opt/kde/bin:/usr/lib/qt/bin:/usr/share/texmf/bin:.:/sbin:/usr/sbin:
<BR>
<BR>quinsi credo che si, sono variabili, ma di ambiente (come si dice su windows)
<BR>quindi non è il percorso della dir corrente ma sono i path in cui la consolle deve andarea cercare un comando quando esso viene digitato
<BR>ciaoz.<br>