Repository 32bit  Forum
Repository 64bit  Wiki

Comandi da programma

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 21: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 23:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda JohnnyMnemonic » lun mag 19, 2008 21:12

Si ma /usr/sbin non fa parte del tuo PATH
Verificalo con
Codice: Seleziona tutto
echo $PATH
Avatar utente
JohnnyMnemonic
Staff
Staff
 
Messaggi: 2729
Iscritto il: dom set 05, 2004 0: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 21: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 23:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda JohnnyMnemonic » lun mag 19, 2008 21: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: 2729
Iscritto il: dom set 05, 2004 0: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 21: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 2:40
Località: Milano
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox

Re: Comandi da programma

Messaggioda Grifone » lun mag 19, 2008 21: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 23:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda gioco » lun mag 19, 2008 22: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: dom giu 19, 2005 0:00
Località: in the court of the Wesnoth king
Slackware: last stable

Re: Comandi da programma

Messaggioda cymon » mar mag 20, 2008 0: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 2:40
Località: Milano
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox

Re: Comandi da programma

Messaggioda Grifone » mar mag 20, 2008 20: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 23:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda cymon » mer mag 21, 2008 9: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 2:40
Località: Milano
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox

Re: Comandi da programma

Messaggioda Grifone » ven mag 23, 2008 19: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 23:06
Località: Genova
Slackware: 12.0

Re: Comandi da programma

Messaggioda gioco » mar mag 27, 2008 15: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: dom giu 19, 2005 0:00
Località: in the court of the Wesnoth king
Slackware: last stable

Re: Comandi da programma

Messaggioda Mithenks` » mar mag 27, 2008 16: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 12:54
Località: Salerno/Siena
Slackware: 12.1

Re: Comandi da programma

Messaggioda Vortagor » lun giu 02, 2008 14: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 13:51
Slackware: 12.0

Re: Comandi da programma

Messaggioda conraid » lun giu 02, 2008 15: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: 11892
Iscritto il: gio lug 14, 2005 0:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

PrecedenteProssimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite