Bhe io vorrei eseguire da utente normale pppoe-start per esempio, allora nel file sudoers ho messo il percorso /usr/sbin/pppoe-start dove in effetti è il comando414N ha scritto:Probabilmente hai sbagliato a immettere il path completo del programma, se ti dice command not found...
Comandi da programma
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- Grifone
- Linux 1.x

- Messaggi: 114
- Iscritto il: mer 17 ott 2007, 23:06
- Slackware: 12.0
- Località: Genova
Re: Comandi da programma
- JohnnyMnemonic
- Staff

- Messaggi: 2733
- Iscritto il: dom 5 set 2004, 0:00
- Nome Cognome: Giuseppe Palmiotto
- Slackware: 14.0
- Kernel: 3.5.5-thanatos
- Località: Bologna
- Contatta:
Re: Comandi da programma
Si ma /usr/sbin non fa parte del tuo PATH
Verificalo con
Verificalo con
Codice: Seleziona tutto
echo $PATH- Grifone
- Linux 1.x

- Messaggi: 114
- Iscritto il: mer 17 ott 2007, 23:06
- Slackware: 12.0
- Località: Genova
Re: Comandi da programma
JohnnyMnemonic ha scritto:Si ma /usr/sbin non fa parte del tuo PATH
Verificalo conCodice: Seleziona tutto
echo $PATH
Codice: Seleziona tutto
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/java/bin:/usr/lib/java/jre/bin:/usr/lib/qt/bin:/usr/share/texmf/bin:- JohnnyMnemonic
- Staff

- Messaggi: 2733
- Iscritto il: dom 5 set 2004, 0:00
- Nome Cognome: Giuseppe Palmiotto
- Slackware: 14.0
- Kernel: 3.5.5-thanatos
- Località: Bologna
- Contatta:
Re: Comandi da programma
Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento
- cymon
- Linux 2.x

- Messaggi: 430
- Iscritto il: ven 5 gen 2007, 1:40
- Slackware: 13.1
- Kernel: 2.6.33.4-smp
- Desktop: Fluxbox
- Località: Milano
- Contatta:
Re: Comandi da programma
Ma poi lo hai invocato scrivendo /usr/sbin/pppoe-startGrifone ha scritto:Bhe io vorrei eseguire da utente normale pppoe-start per esempio, allora nel file sudoers ho messo il percorso /usr/sbin/pppoe-start dove in effetti è il comando414N ha scritto:Probabilmente hai sbagliato a immettere il path completo del programma, se ti dice command not found...
o solo con
pppoe-start?
Nel secondo caso non funzionerà mai, perchè a prescindere dai sudoers, come ti hanno già detto, il sistema non troverà il comando indicato.
Visto che è una cosa da cablare in codice secondo me la soluzione più pulita è invocarlo con tutto il path...
- Grifone
- Linux 1.x

- Messaggi: 114
- Iscritto il: mer 17 ott 2007, 23:06
- Slackware: 12.0
- Località: Genova
Re: Comandi da programma
Ho provato a fare un link simbolico (da root) e mi dice "You must be root to run this script" Alchè con chmod ho impostato i dirittiJohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento
Codice: Seleziona tutto
# chmod 777 <nome link>- gioco
- Packager

- Messaggi: 900
- Iscritto il: dom 19 giu 2005, 0:00
- Slackware: last stable
- Località: in the court of the Wesnoth king
- Contatta:
Re: Comandi da programma
Una è usare un alias in ~/.bashrc:JohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento
Codice: Seleziona tutto
alias pppoe-start="sudo /usr/sbin/pppoe-start"- cymon
- Linux 2.x

- Messaggi: 430
- Iscritto il: ven 5 gen 2007, 1:40
- Slackware: 13.1
- Kernel: 2.6.33.4-smp
- Desktop: Fluxbox
- Località: Milano
- Contatta:
Re: Comandi da programma
i diritti del link simbolico sono propri del link simbolico e non del programma che linka. Anche perché altrimenti non riusciresti a dargli il 777, visto che sarebbe un altro buco di sicurezza. Solo root può cambiare i permessi dei suoi file e renderli accessibili a tuto il mondo.Grifone ha scritto:Ho provato a fare un link simbolico (da root) e mi dice "You must be root to run this script" Alchè con chmod ho impostato i dirittiJohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento
ma la musica non cambia.Perchè?Codice: Seleziona tutto
# chmod 777 <nome link>
Ma, è noto, rendere accessibili a tutto il mondo i file di root è IL MALE, quindi niente chmod 777 sullo /usr/sbin/pppoe-start
L'alias è probabilmente la via migliore.
- Grifone
- Linux 1.x

- Messaggi: 114
- Iscritto il: mer 17 ott 2007, 23:06
- Slackware: 12.0
- Località: Genova
Re: Comandi da programma
Perfetto, creando l'alias sono riuscito ad impostare i comandi anche da utente normale
.Grazie a tutti
EDIT:
non riesco però a farli eseguire con la funzione system
se faccio system(pppoe-start) mi dice : sh: pppoe-start: command not found. Eppure da terminale riesco a farlo andare da utente non-root!! 
EDIT:
non riesco però a farli eseguire con la funzione system
- cymon
- Linux 2.x

- Messaggi: 430
- Iscritto il: ven 5 gen 2007, 1:40
- Slackware: 13.1
- Kernel: 2.6.33.4-smp
- Desktop: Fluxbox
- Località: Milano
- Contatta:
Re: Comandi da programma
La working directory del programma qual è?Grifone ha scritto:Perfetto, creando l'alias sono riuscito ad impostare i comandi anche da utente normale.Grazie a tutti
EDIT:
non riesco però a farli eseguire con la funzione systemse faccio system(pppoe-start) mi dice : sh: pppoe-start: command not found. Eppure da terminale riesco a farlo andare da utente non-root!!
Forse è meglio se inserisci sempre tutto il path nella chiamata di system.
- Grifone
- Linux 1.x

- Messaggi: 114
- Iscritto il: mer 17 ott 2007, 23:06
- Slackware: 12.0
- Località: Genova
Re: Comandi da programma
Non ho capito dove devo mettere l'alias me lo potresti spiegare?gioco ha scritto:Una è usare un alias in ~/.bashrc:JohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momentoCodice: Seleziona tutto
alias pppoe-start="sudo /usr/sbin/pppoe-start"
- gioco
- Packager

- Messaggi: 900
- Iscritto il: dom 19 giu 2005, 0:00
- Slackware: last stable
- Località: in the court of the Wesnoth king
- Contatta:
Re: Comandi da programma
Nel file .bashrc nella tua home. Ovvero $HOME/.bashrc. Ovvero ~/.bashrc. Ovvero /home/$(whoami)/.bashrc.
Se quel file non esiste lo devi creare e lo devi rendere eseguibile con.
Il nome del file è comprensivo del '.' iniziale, che nei sistemi *NIX indica che il file è nascosto.
Se quel file non esiste lo devi creare e lo devi rendere eseguibile con
Codice: Seleziona tutto
chmod +x $HOME/.bashrcIl nome del file è comprensivo del '.' iniziale, che nei sistemi *NIX indica che il file è nascosto.
- Mithenks`
- Linux 0.x

- Messaggi: 21
- Iscritto il: dom 25 mag 2008, 12:54
- Slackware: 12.1
- Località: Salerno/Siena
- Contatta:
Re: Comandi da programma
Io direi che se non vuoi invocare il programma usando tutto il path,
un'altra soluzione potrebbe essere usare which:
EDIT:
Negativo, non và
C'è l'opzione -i che sembrava fare al caso tuo, ma funziona solo se apri una vera e propria shell.
Probabilmente sudo per ragioni di sicurezza mantiene la path dell'utente che lancia il comando,
cosa che penso possa essere tolta dal file di configurazione.
un'altra soluzione potrebbe essere usare which:
Codice: Seleziona tutto
system("sudo `which ppoe-start`");Negativo, non và
C'è l'opzione -i che sembrava fare al caso tuo, ma funziona solo se apri una vera e propria shell.
Probabilmente sudo per ragioni di sicurezza mantiene la path dell'utente che lancia il comando,
cosa che penso possa essere tolta dal file di configurazione.
Re: Comandi da programma
dopo mesi son tornato a Slackware che non tradisce mai (altro che Windows che mi ha fatto partire un altro HD), e per non dilungarmi troppo uppo questo 3d dato che ho un problema simile e non riesco a risolverlo. Vorrei che ad ogni avvio mi si connettesse in automatico a internet, mentre ora devo aprire una shell, loggarmi come root ed eseguire pppoe-star. Come posso fare?
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: Comandi da programma
Mettilo in rc.localVortagor ha scritto:dopo mesi son tornato a Slackware che non tradisce mai (altro che Windows che mi ha fatto partire un altro HD), e per non dilungarmi troppo uppo questo 3d dato che ho un problema simile e non riesco a risolverlo. Vorrei che ad ogni avvio mi si connettesse in automatico a internet, mentre ora devo aprire una shell, loggarmi come root ed eseguire pppoe-star. Come posso fare?