Repository 32bit  Forum
Repository 64bit  Wiki

Comandi da programma

Forum dedicato alla programmazione.

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.

Re: Comandi da programma

Messaggioda Grifone » lun mag 19, 2008 20:09

414N ha scritto:Probabilmente hai sbagliato a immettere il path completo del programma, se ti dice command not found...

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 comando
Avatar utente
Grifone
Linux 2.0
Linux 2.0
 
Messaggi: 114
Iscritto il: mer ott 17, 2007 22:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda JohnnyMnemonic » lun mag 19, 2008 20:12

Si ma /usr/sbin non fa parte del tuo PATH
Verificalo con
Codice: Seleziona tutto
echo $PATH
Avatar utente
JohnnyMnemonic
Staff
Staff
 
Messaggi: 2732
Iscritto il: sab set 04, 2004 23:00
Località: Bologna
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos

Re: Comandi da programma

Messaggioda Grifone » lun mag 19, 2008 20:19

JohnnyMnemonic ha scritto:Si ma /usr/sbin non fa parte del tuo PATH
Verificalo con
Codice: 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:


Quindi se metto pppoe-start in /usr/bin/ (ad esempio) poi posso farlo partire da utente normale?
Avatar utente
Grifone
Linux 2.0
Linux 2.0
 
Messaggi: 114
Iscritto il: mer ott 17, 2007 22:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda JohnnyMnemonic » lun mag 19, 2008 20:23

Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento
Avatar utente
JohnnyMnemonic
Staff
Staff
 
Messaggi: 2732
Iscritto il: sab set 04, 2004 23:00
Località: Bologna
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos

Re: Comandi da programma

Messaggioda cymon » lun mag 19, 2008 20:52

Grifone ha scritto:
414N ha scritto:Probabilmente hai sbagliato a immettere il path completo del programma, se ti dice command not found...

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 comando


Ma poi lo hai invocato scrivendo /usr/sbin/pppoe-start
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...
Avatar utente
cymon
Linux 2.4
Linux 2.4
 
Messaggi: 430
Iscritto il: ven gen 05, 2007 1:40
Località: Milano
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox

Re: Comandi da programma

Messaggioda Grifone » lun mag 19, 2008 20:55

JohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento


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 diritti

Codice: Seleziona tutto
# chmod 777 <nome link>


ma la musica non cambia.Perchè?
Avatar utente
Grifone
Linux 2.0
Linux 2.0
 
Messaggi: 114
Iscritto il: mer ott 17, 2007 22:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda gioco » lun mag 19, 2008 21:15

JohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento

Una è usare un alias in ~/.bashrc:
Codice: Seleziona tutto
alias pppoe-start="sudo /usr/sbin/pppoe-start"
Avatar utente
gioco
Packager
Packager
 
Messaggi: 900
Iscritto il: sab giu 18, 2005 23:00
Località: in the court of the Wesnoth king
Slackware: last stable

Re: Comandi da programma

Messaggioda cymon » lun mag 19, 2008 23:10

Grifone ha scritto:
JohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento


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 diritti

Codice: Seleziona tutto
# chmod 777 <nome link>


ma la musica non cambia.Perchè?


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.
Ma, è noto, rendere accessibili a tutto il mondo i file di root è IL MALE, quindi niente chmod 777 sullo /usr/sbin/pppoe-start :D
L'alias è probabilmente la via migliore.
Avatar utente
cymon
Linux 2.4
Linux 2.4
 
Messaggi: 430
Iscritto il: ven gen 05, 2007 1:40
Località: Milano
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox

Re: Comandi da programma

Messaggioda Grifone » mar mag 20, 2008 19:20

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!! :(
Avatar utente
Grifone
Linux 2.0
Linux 2.0
 
Messaggi: 114
Iscritto il: mer ott 17, 2007 22:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda cymon » mer mag 21, 2008 8:36

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 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!! :(


La working directory del programma qual è?
Forse è meglio se inserisci sempre tutto il path nella chiamata di system.
Avatar utente
cymon
Linux 2.4
Linux 2.4
 
Messaggi: 430
Iscritto il: ven gen 05, 2007 1:40
Località: Milano
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox

Re: Comandi da programma

Messaggioda Grifone » ven mag 23, 2008 18:15

gioco ha scritto:
JohnnyMnemonic ha scritto:Potresti fare un link simbolico
Può darsi che ci siano soluzioni più pulite ma non mi vengono in mente al momento

Una è usare un alias in ~/.bashrc:
Codice: Seleziona tutto
alias pppoe-start="sudo /usr/sbin/pppoe-start"


Non ho capito dove devo mettere l'alias me lo potresti spiegare?
Avatar utente
Grifone
Linux 2.0
Linux 2.0
 
Messaggi: 114
Iscritto il: mer ott 17, 2007 22:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda gioco » mar mag 27, 2008 14:57

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
Codice: Seleziona tutto
chmod +x $HOME/.bashrc
.
Il nome del file è comprensivo del '.' iniziale, che nei sistemi *NIX indica che il file è nascosto.
Avatar utente
gioco
Packager
Packager
 
Messaggi: 900
Iscritto il: sab giu 18, 2005 23:00
Località: in the court of the Wesnoth king
Slackware: last stable

Re: Comandi da programma

Messaggioda Mithenks` » mar mag 27, 2008 15:18

Io direi che se non vuoi invocare il programma usando tutto il path,
un'altra soluzione potrebbe essere usare which:

Codice: Seleziona tutto
system("sudo `which ppoe-start`");


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.
Avatar utente
Mithenks`
Linux 1.0
Linux 1.0
 
Messaggi: 21
Iscritto il: dom mag 25, 2008 11:54
Località: Salerno/Siena
Slackware: 12.1

Re: Comandi da programma

Messaggioda Vortagor » lun giu 02, 2008 13:01

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?
Avatar utente
Vortagor
Linux 1.0
Linux 1.0
 
Messaggi: 12
Iscritto il: sab ott 27, 2007 12:51
Slackware: 12.0

Re: Comandi da programma

Messaggioda conraid » lun giu 02, 2008 14:03

Vortagor 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?


Mettilo in rc.local
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

PrecedenteProssimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti