Pagina 1 di 3

Comandi da programma

Inviato: dom 18 mag 2008, 21:19
da Grifone
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

Re: Comandi da programma

Inviato: dom 18 mag 2008, 22:21
da dnegroni
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.

Re: Comandi da programma

Inviato: dom 18 mag 2008, 22:24
da Grifone
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)

Re: Comandi da programma

Inviato: dom 18 mag 2008, 22:26
da cymon
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.

Re: Comandi da programma

Inviato: dom 18 mag 2008, 22:29
da 414N
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.

Re: Comandi da programma

Inviato: dom 18 mag 2008, 22:36
da Grifone
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?

Re: Comandi da programma

Inviato: dom 18 mag 2008, 22:43
da 414N
Intendi mettendo la password di root all'interno del programma?
Non è una mossa furba... Fossi in te mi indirizzerei verso l'utilizzo di sudo.

Re: Comandi da programma

Inviato: dom 18 mag 2008, 22:52
da Grifone
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

Re: Comandi da programma

Inviato: dom 18 mag 2008, 23:04
da 414N
In che senso non puoi eseguire sudo?

Re: Comandi da programma

Inviato: lun 19 mag 2008, 8:24
da Grifone
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.

Re: Comandi da programma

Inviato: lun 19 mag 2008, 10:24
da 414N
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.

Re: Comandi da programma

Inviato: lun 19 mag 2008, 15:26
da Grifone
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"?

Re: Comandi da programma

Inviato: lun 19 mag 2008, 15:34
da 414N
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

Re: Comandi da programma

Inviato: lun 19 mag 2008, 20:51
da Grifone
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....

Re: Comandi da programma

Inviato: lun 19 mag 2008, 20:53
da 414N
Probabilmente hai sbagliato a immettere il path completo del programma, se ti dice command not found...