Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Gnome como root, Molesta ventanita
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
diegoto
Guru
Guru


Joined: 10 Jun 2006
Posts: 305
Location: Argentina

PostPosted: Sun Dec 16, 2007 5:39 pm    Post subject: Reply with quote

Le comento como lo hice, bueno en realidad es lo que hace el patch que puso pacho2.

La linea de codigo de main.c

Code:

#define ROOTSESSION_RESPONSE_CONTINUE 1
#define ROOTSESSION_RESPONSE_QUIT 3
static gboolean
gsm_check_for_root (void)
{
  GtkWidget *dlg;
  gint       response;

  if (geteuid () != 0)
    return FALSE;

  dlg = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING,
                                GTK_BUTTONS_NONE,
                                _("This session is running as a privileged user"));
  gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg),
                                            _("Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a normal user."));

  /* FIXME: would be nice to have a icon for Continue */
  gtk_dialog_add_buttons (GTK_DIALOG (dlg),
                          _("_Continue"), ROOTSESSION_RESPONSE_CONTINUE,
                          GTK_STOCK_QUIT, ROOTSESSION_RESPONSE_QUIT,
                          NULL);
  gtk_dialog_set_default_response (GTK_DIALOG (dlg),
                                   ROOTSESSION_RESPONSE_QUIT);
  gtk_window_set_title (GTK_WINDOW (dlg), "");
  gtk_window_set_position (GTK_WINDOW (dlg), GTK_WIN_POS_CENTER);

  response = gtk_dialog_run (GTK_DIALOG (dlg));
  gtk_widget_destroy (dlg);

  return !(response == ROOTSESSION_RESPONSE_CONTINUE);
}


La modifique y quedo de esta manera

Code:

#define ROOTSESSION_RESPONSE_CONTINUE 1
#define ROOTSESSION_RESPONSE_QUIT 3
static gboolean
gsm_check_for_root (void)
{
    return FALSE;
}

Osea que siempre devuelva FALSO en caso de que este utilizando el usuario root. Y como lo veo ahorra crear la ventana de dialogo también
.

Muchas gracias gente!.. Saludos
_________________
Diego Najar

http://www.muser.com.ar <-- Blog Personal
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Sun Dec 16, 2007 10:15 pm    Post subject: Reply with quote

Es lo bastante elegante :P

Al comentar esa línea se fuerza la ejecución del "return FALSE;" de forma incondicional. Es decir, que aunque se rompa la condición impuesta (es decir, aún si el UID fuera igual a cero, y por tanto el usuario sería root) se saldrá de la función inmediatamente, sin ejecutar lo que hay bajo el "return FALSE;"

La forma más elegante de arreglarlo sería anular la llamada a la función. Ahora mismo aún se llama a la función, y la función se ejecuta, aunque sea para salir de forma inmediata. Lo cual es virtualmente inocuo, pero ocupa recursos (aunque sean pocos) de forma totalmente innecesaria. Muy probablemente la llamada a la función debe estar en algún punto dentro de la función main() en ese mismo fichero, aunque como no he mirado tampoco puedo decir mucho. Si alguien adjunta el fichero y lo pega en un pastebin o algo le puedo echar un vistazo. Aunque el parche de más arriba funcionará de todas formas, aunque no sea técnicamente óptimo :P
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum