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.

Comandi da programma

Messaggioda Grifone » dom mag 18, 2008 20:19

Buonasera a tutti volevo chiedervi se c'è una funzione o una classe, in c/c++, per interfacciarsi con il terminale.
Avrei bisogno di dare comandi che però hanno bisogno dei diritti di root (e quindi credo che il solo system(...) non basti) dato che con quello posso solo dare comandi che potrei dare da terminale come utente normale.
Grazie a tutti
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 dnegroni » dom mag 18, 2008 21:21

CIao.

Cosa intendi per interfacciare il terminale?

In C, in stdlib.h hai la funzione
Codice: Seleziona tutto
int system(const char *s)
per interfacciare l'ambiente esterno.

Se hai bisogno dei privilegi di root, puoi far girare come root il programma C dentro al quale hai la/le system().

Ciao.
Avatar utente
dnegroni
Linux 1.0
Linux 1.0
 
Messaggi: 27
Iscritto il: lun gen 08, 2007 10:30
Località: Genova
Slackware: 12.2

Re: Comandi da programma

Messaggioda Grifone » dom mag 18, 2008 21:24

dnegroni ha scritto:CIao.

Cosa intendi per interfacciare il terminale?

In C, in stdlib.h hai la funzione
Codice: Seleziona tutto
int system(const char *s)
per interfacciare l'ambiente esterno.

Se hai bisogno dei privilegi di root, puoi far girare come root il programma C dentro al quale hai la/le system().

Ciao.


Io vorrei poter dare dei comandi che però hanno privilegi di root, senza dover però eseguirlo da root :D Quindi pensavo che magari poteva esserci un modo per dare questi comandi anche se il rpgramma gira su un utente normale (inserendo magari la password di root da programma)
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 » dom mag 18, 2008 21:26

Bhe, tecnicamente un comando che permetta di fare a prescindere quello che dici non esiste, sarebbe un buco di sicurezza (ok, fino a un po' di tempo fa c'era modo, ma l'hanno patchato, per fortuna :p ).
Dipende da che rapporti ci sono tra l'utente con cui gira il tuo programma e root. O questo ha i permessi di esecuzione o quantomeno ha il sudo. In entrambi i casi credo che System (con comando opportuno) dovrebbe comunque bastare.
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 414N » dom mag 18, 2008 21:29

Basta che incorpori, all'interno della riga di comando da far eseguire a system(),
Codice: Seleziona tutto
su -c "comandi da eseguire come root"

In questo modo viene chiesta la password di root.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Comandi da programma

Messaggioda Grifone » dom mag 18, 2008 21:36

414N ha scritto:Basta che incorpori, all'interno della riga di comando da far eseguire a system(),
Codice: Seleziona tutto
su -c "comandi da eseguire come root"

In questo modo viene chiesta la password di root.


Perfetto era proprio quello che volevo :D
Esiste un modo per inserirgli la password da programma senza chiederla all'utente?
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 414N » dom mag 18, 2008 21:43

Intendi mettendo la password di root all'interno del programma?
Non è una mossa furba... Fossi in te mi indirizzerei verso l'utilizzo di sudo.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Comandi da programma

Messaggioda Grifone » dom mag 18, 2008 21:52

414N ha scritto:Intendi mettendo la password di root all'interno del programma?
Non è una mossa furba... Fossi in te mi indirizzerei verso l'utilizzo di sudo.


Si dovrei però modificare il file sudoers giusto? Perchè attualmente il mio utente non può eseguire sudo, comunque si, io intendevo quello :D
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 414N » dom mag 18, 2008 22:04

In che senso non puoi eseguire sudo?
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Comandi da programma

Messaggioda Grifone » lun mag 19, 2008 7:24

414N ha scritto:In che senso non puoi eseguire sudo?


Che se da terminale facio sudo <comando> dopo avermi chiesto la password mi dice "command not found"
oppure mi dice
Codice: Seleziona tutto
 sudo nano /etc/fstab
Sorry, user <nome utente> is not allowed to execute '/usr/bin/nano /etc/fstab' as root on Grifone.
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 414N » lun mag 19, 2008 9:24

Per forza, devi prima configurarlo con /etc/sudoers.
Esiste un comando apposta, visudo, per lanciare vi su /etc/sudoers, in modo da poterlo modificare agevolmente.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Comandi da programma

Messaggioda Grifone » lun mag 19, 2008 14:26

414N ha scritto:Per forza, devi prima configurarlo con /etc/sudoers.
Esiste un comando apposta, visudo, per lanciare vi su /etc/sudoers, in modo da poterlo modificare agevolmente.

Si si lo avevo un po' visto sai mica come posso fare per mettere il mio utente nella lista dei "sudo"?
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 414N » lun mag 19, 2008 14:34

Non l'ho mai fatto, ma in Slackware 4 Dummies c'è scritto (nella sezione Spegnere Slackware).
Dagli una letta. Lo trovi nella home page di slacky.it
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Comandi da programma

Messaggioda Grifone » lun mag 19, 2008 19:51

414N ha scritto:Non l'ho mai fatto, ma in Slackware 4 Dummies c'è scritto (nella sezione Spegnere Slackware).
Dagli una letta. Lo trovi nella home page di slacky.it


Io ho un po' cercato e ho provato varie alternative ma non ci sono riuscito, ora non mi da più l'errore di prima ma mi dice direttamnete "command not found" :(
Bha...cercherò ancora un po....
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 414N » lun mag 19, 2008 19:53

Probabilmente hai sbagliato a immettere il path completo del programma, se ti dice command not found...
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Prossimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite